2013-07-05 2 views
2

в ASP.NET MVC я пытался связать поле модели с DisplayText с кодом ниже:C# ASP.NET MVC модель привязки

<% if (Model.WillAttend == true) 
      Html.DisplayTextFor(x => x.Name); %> 

, но когда я попробовал:

<% if (Model.WillAttend == true)  %> 
     <% = Html.DisplayTextFor(x => x.Name)  %> 

это почему? оба кажутся одинаковым кодом, единственное, что отличается от приведенного ниже, - это только каждая строка разделяется тегом на стороне сервера.

ответ

2

Разница заключается в знаке = после тегов <%. Это гарантирует, что значение будет записано на выход. Первый пример - просто объявить значение и ничего не делать с ним.

Отъезд this blog entry for more info on the ASPX view engine tag syntax.

Это сильно упрощается с синтаксисом Razor, где вы можете только prefix a line in a codeblock with @ in order to write it to output. Я не знаю, есть ли аналогичная функциональность в движке просмотра ASPX.

+0

, так что u означает, что мы не можем написать весь код C# в одном теге на стороне сервера ('<% %>')? –

+0

Ни одного нет, не то, что я могу найти хотя бы (я действительно работал с синтаксисом Razor). Код, который вы хотите вывести, должен каким-то образом записать его на выход, следовательно, синтаксис '<% ='. –

+0

Вы можете объявить строку, хотя и просто вывести ее в конце, но я не уверен, что ее можно было бы легко прочитать. –

Смежные вопросы