2012-04-27 3 views
1

Я только начинаю с MVC, и я пытаюсь создать образец, доказательство концепции страницы для взаимодействия mvc с jquery-mobile. Я искал ответ на это, но я не думаю, что знаю достаточно, чтобы сформулировать правильные запросы.mvc + jqm actionlink html text issue

На мой взгляд, я пытаюсь создать вывод, что функции, как это (сэмпл из jqm демо-сайт):

 <ul data-role="listview" data-inset="true"> 
     <li><a href="index.html"> 
      <h3>Stephen Weber</h3> 
      <p><strong>You've been invited to a meeting at Filament Group in Boston, MA</strong></p> 
      <p>Hey Stephen, if you're available at 10am tomorrow, we've got a meeting with the jQuery team.</p> 
      <p class="ui-li-aside"><strong>6:24</strong>PM</p> 
     </a></li> 
     <li><a href="index.html"> 
      <h3>jQuery Team</h3> 
      <p><strong>Boston Conference Planning</strong></p> 
      <p>In preparation for the upcoming conference in Boston, we need to start gathering a list of sponsors and speakers.</p> 
      <p class="ui-li-aside"><strong>9:18</strong>AM</p> 
     </a></li> 
    </ul> 

Итак, я работаю так:

@foreach (var item in Model) { 
    <li> 
      @Html.ActionLink(LargeExpandedMultiContentText, "Edit", new { id = item.SysID }) 
     </li> 
} 

Мой вопрос, который я не знаю простого способа задать, заключается в том, как в условиях MVC я заполняю переменную, так что href, сгенерированный ActionLink(), соответствует стилю, который я выбрал с сайта jqm ?

Я пробовал это, и, хотя он почти работает, я уверен, что это не «правильный» способ, особенно когда я добираюсь до места вытягивания «Стивена Вебера» и других строк из предмета/модели ... плюс он кодирует текст, но я уверен, что есть способ справиться с этим достаточно простым.

@foreach (var item in Model) { 
    <li> 
     @{ String txt = "<h3>Stephen Weber</h3><p><strong>You've been invited to a meeting at Filament Group in Boston, MA</strong></p><p>Hey Stephen, if you're available at 10am tomorrow, we've got a meeting with the jQuery team.</p>   <p class=\"ui-li-aside\"><strong>6:24</strong>PM</p>"; 
     } 
     @Html.ActionLink(txt, "Edit", new { id = item.SysID }) 
    </li> 
} 

Спасибо, я ценю вашу помощь

Брайан

ответ

1

Я не уверен, что это можно использовать Html.ActionLink построить такую ​​сложную связь действий. Тем не менее, помощники Html просто должны быть вспомогательными функциями, чтобы облегчить вашу жизнь, предоставив вам ярлыки для рендеринга HTML способами, которые обычно требуются. Вам не нужны . В этом случае, я думаю, вместо этого вы должны использовать обычный html-тег и Url.Action для создания правильного URL-адреса.

Если вы хотите включить эту информацию в перечислимом модели я бы, вероятно, сделать что-то вроде:

@foreach (var item in Model) { 
    <li><a href="@Url.Action(item.Action)"> 
     <h3>@item.Name</h3> 
     <p><strong>@item.Title</strong></p> 
     <p>@item.Message</p> 
     <p class="ui-li-aside"><strong>@item.Time</strong>@item.TimePeriod</p> 
    </a></li> 
} 

Примечания: функция, которую вы искали, чтобы отобразить содержимое без кодирования является @Html.Raw

+0

Спасибо за @ Html.Raw намек ... Я знал, что я видел, что где-то ... Вы можете ответить, случайно, часть вопроса о выполнении вложенного блока кода жгутов в Еогеасп ? – reidLinden

+0

Рад помочь, если смогу, но, пожалуйста, повторите то, что вложенная часть блока кода вопроса. Я не уверен, о чем вы говорите. – DMulligan

+0

в моем исходном посте, третьем блоке кода ... внутри foreach, мне было интересно, правильно ли это обрабатывать такую ​​идею, переменную txt, и если это уменьшит меня до конкатенации строк, чтобы построить html , или если есть более MVC-способ ... Для записи я перекинул весь свой код на вашу рекомендацию, и все, кажется, работает великолепно ... спасибо! – reidLinden

0

В ответ на мой другой «половину вопроса» я нашел этот ресурс ...

http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx

Я считаю, что элемент «бритвенного делегата», расположенный внизу, соответствовал бы моей потребности.

@{ 
    Func<dynamic, object> b = 
    @<strong>@item</strong>; 
} 

@b("Bold this")