意外的" {"在@vz4中的razor代码之后

时间:2015-01-05 12:25:39

标签: asp.net-mvc-4 razor razor-2

我在razor代码中的render partial中遇到错误,意外" {"在" @"字符。一旦进入代码块(@if {},@ {}等),你就不需要使用" @ {"切换到代码。

@if (Model.Count() > 0)
{
    <div id="mReserveForTodayPartial">    
        @{Html.Partial("UpdateReserveForToday.mobile");}
    </div>
}

请帮助..!

3 个答案:

答案 0 :(得分:2)

Html.Partial()返回MvcHtmlString所以你必须这样做:

 @Html.Partial("UpdateReserveForToday")

Html.RenderPartial()的情况下,它写入输出流,这就是为什么它的返回类型是void,所以当使用Html.RenderPartial()时你必须​​这样做:

@{

Html.RenderPartial("UpdateReserveForToday");

}

答案 1 :(得分:0)

试试这段代码:

@{  List<SelectListItem> listItems = new List<SelectListItem>();
  foreach (var item in ViewData["Subcategory"] as IEnumerable<ApplicationOneStoreForEstore.Models.tblsubcategory>)     {
    listItems.Add(new SelectListItem            {
      Text = item.subcategory_name,
      Value = Convert.ToString(item.subcategory_id)
    });
  }
}

如果必须绑定DropDownList,则必须将此代码放在Html.BeginForm(..)

之前

答案 2 :(得分:0)

下面的代码可以解决此问题。

@if (Model.Count() > 0)
{
    <div id="mReserveForTodayPartial">    
        Html.Partial("UpdateReserveForToday.mobile");
    </div>
}

由于Razor视图引擎可以解析代码,如果语句在&#34; @ {}&#34;中可用,那么在您的代码&#34; @ {}&#34;出现在&#34;如果&#34;声明所以不需要再次指定。