Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
AlexandrVavilow
4 / 4 / 2
Регистрация: 06.07.2012
Сообщений: 95
1

Ошибка выведения в представлении @Response.Write("ftghgdr") в синтаксисе Razor

03.08.2012, 03:05. Просмотров 1380. Ответов 4
Метки нет (Все метки)

Хочу вставить дату в представлении с помощью
HTML5
1
@Response.Write(DateTime.Now)
но выдает ошибку:
Наиболее подходящий перегруженный метод для 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' имеет несколько недопустимых аргументов

а если в представлении написать вот так:

HTML5
1
2
3
4
        @for (int i = 0; i < j; i++)
        {
            Response.Write(i);
        }
то содержимое Response.Write(i) выводится за пределами html страницы еще до тегов
HTML5
1
2
<!DOCTYPE html>
<html>
подскажите как воспользоватся Response.Write если синтаксис Razor
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.08.2012, 03:05
Ответы с готовыми решениями:

ошибка Element not found в отношении строки Response.Charset("Windows-1251")?
в global.asa у меня присутствует следующее: sub Application_OnStart ...

for..in Response.Write выводит количество файлов 33, но цикл почему то не крутится ни разу. В чём ошибка?
Выполняю следующую последовательность строк на JavaScript (ASP) var fso = Server.CreateObject...

Не получается реализовать "цикл в цикле" в представлении
Проект - &quot;Система тестирования&quot;. После передачи в представление модели(в модели два...

Ошибка "'System.Web.Mvc.HtmlHelper<dynamic>" не имеет применимого метода с именем "ActionLink"
Всем привет непойму где ошибка &lt;ul&gt; @foreach (var item in Model) { &lt;li&gt; ...

При вызове метода sqlDataAdapter.Fill(dataSet, "T_Vhod_doc") происходит ошибка "Login failed for user"
Доброго времени суток! При вызове метода sqlDataAdapter.Fill(dataSet, &quot;T_Vhod_doc&quot;) происходит...

4
y-fox
518 / 510 / 68
Регистрация: 19.09.2011
Сообщений: 826
03.08.2012, 08:49 2
Зачем вообще понадобилось писать в Response ?
HTML5
1
@DateTime.Now
В нужном месте разметки - и все.
0
Alligieri
CEO
Эксперт С++
2254 / 1244 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
03.08.2012, 10:48 3
AlexandrVavilow, большинство хелперов и обращение к полям в разметке Razor все равно выталкивают содержимое в Response, потому вызывать руками нет сути. Если не хотите чтоб содержимое декодировалось - используйте Html.Raw. А ошибка в том что Response.Write скорее всего не принимает дат, потому надо сделать вызов .ToString/ToShortDateString/ToShortTimeStrings/etc
1
AlexandrVavilow
4 / 4 / 2
Регистрация: 06.07.2012
Сообщений: 95
03.08.2012, 13:15  [ТС] 4
Цитата Сообщение от y-fox Посмотреть сообщение
Зачем вообще понадобилось писать в Response ?
HTML5
1
@DateTime.Now
В нужном месте разметки - и все.
Вобщето главной причиной было использовать Response как аналог Echo в PHP. А именно Respons*ом добавлять коментарии древоподобным вложеным стилем. Зависимо от того есть ли в таблице БД в коментария коментарий-предок, посовывать с помощью <div class="sd"> вывод коментария на 20px вправо.

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<h2>
    Комментарии</h2>
@{int j = 0;}
@foreach (Blog.Models.Comment com in ViewBag.Comments)
{
    if (com.ParentCommentId == null)
    {
        j = 0;
    <table width="100%" border="0">
        <tr>
            <td>
                <img src="@com.aspnet_Users.UserDetail.Avatar" width = "15">
                @com.aspnet_Users.UserName говорит..
            </td>
            <td align="right">@com.Date
            </td>
        </tr>
        <tr>
            <td colspan="2">@com.Comment1
            </td>
        </tr>
    </table>
    @Html.ActionLink("Ответить", "Say", new { id = Model.Id })
    <br />
    <br />
    }
    else
    {
        j = j + 1;
        for (int i = 0; i < j; i++)
        {
            Response.Write("<div class=\"sd\">");
        }
        
        <table width="100%" border="0">
            <tr>
                <td>
                    <img src="@com.aspnet_Users.UserDetail.Avatar" width = "15">
                    @com.aspnet_Users.UserName говорит..
                </td>
                <td align="right">@com.Date
                </td>
            </tr>
            <tr>
                <td colspan="2">@com.Comment1
                </td>
            </tr>
        </table>
        @Html.ActionLink("Ответить", "Say", new { id = Model.Id })
        <br />
        <br />
        
   for (int i = 0; i < j; i++)
   {
       Response.Write("</div>");
   }
    }
}
Потому что если без Респонса работать, то Razor вызывает синтаксическую ошибку, потому что не находит закрывающий тег в теле цикла for..
0
y-fox
518 / 510 / 68
Регистрация: 19.09.2011
Сообщений: 826
03.08.2012, 13:34 5
HTML5
1
2
3
4
5
6
7
8
9
@for (int i = 0; i < j; i++)
{
     //вариант 1
     @:<div class=\"sd\">
     //вариант 2
     @Html.Raw("<div class=\"sd\">")
     //вариант 3
     @MvcHtmlString.Create("<div class=\"sd\">")
}
2
03.08.2012, 13:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.08.2012, 13:34

MVC Razor: как программно в представлении влиять на атрибуты внутри тегов?
как сделать чтобы в &lt;tr class=&quot;data-table-tr-hover&quot; onclick=&quot;location.href =...

Response.Write() не выполняется
Не подскажите,почему не работает следующий if,т.к. метод Response.Write() никогда не выполняется,...

Response.Write() и поле из DataList
Вопрос начинающего Неплохо знаю ASP, пробую работать с ASP.NET Могу я написать что-то вроде:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru