[asp.net-mvc] ASP.NET MVC Razor 연결

Razor보기 엔진을 사용하여 다음과 같은 HTML 목록을 렌더링하려고합니다.

<ul>
  <li id="item_1">Item 1</li>
  <li id="item_2">Item 2</li>
</ul>

이 목록을 렌더링하는 데 사용하려는 코드는 다음과 같습니다.

<ul>
@foreach (var item in Model.TheItems)
{
  <li id="item_@item.TheItemId">Item @item.TheItemId</li>
}
</ul>

파서는 id 속성의 밑줄 오른쪽에있는 모든 것이 일반 텍스트이며 파싱해서는 안된다고 생각하기 때문에 질식합니다. TheItemId를 렌더링하도록 파서에 지시하는 방법을 잘 모르겠습니다.

나는 item_ 접두사를 포함하는 모델 객체의 속성을 원하지 않습니다.

또한 JQuery Sortable과 함께 목록을 사용하고이 구문에서 id 속성을 형식화해야하는 직렬화 함수와 함께이 구문을 유지해야합니다.



답변

호출의 내부 부분을 다음과 ( )같이 래핑해야합니다 .

<li id="item_@(item.TheItemId)">


답변

String.Format을 사용하는 것은 어떻 습니까? 이렇게 :

<li id="@String.Format("item_{0}", item.TheItemId)">


답변

나는 선호한다:

<li id="@String.Concat("item_", item.TheItemId)">

자세한 정보는 지원 개발자에게 정확히 무슨 일이 일어나고 있는지 알려주므로 명확하고 이해하기 쉽습니다.


답변

이 방법을 사용하여 더 많은 문자열 을 연결할 수도 있습니다 .

<li id="@("item-"+item.Order + "item_"+item.ShopID)" class="ui-state-default"></li>

여기 에 또 다른 게시물이 있습니다.

희망은 누군가를 돕습니다.


답변

더 간단한 방법으로 이렇게 할 수 있습니다.

id="item_@item.TheItemId"


답변

이 게시물은 오래된 것 같지만 이제 최신 MVC에서 작동합니다.

id="item_@item.TheItemId"


답변