在 mvc4 中的剃刀代码中 @ 之后出现意外的“{”

unexpected "{" after @ in razor code in mvc4

我在 Razor 代码中呈现部分时遇到以下错误,“@”字符后出现意外的“{”。一旦进入代码块的主体(@if {}、@{} 等),您就不需要使用“@{”来切换到代码。

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

请帮忙..!

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

 @Html.Partial("UpdateReserveForToday")

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

@{

Html.RenderPartial("UpdateReserveForToday");

}

试试这个代码:

@{  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(..)

之前

下面的代码应该可以解决这个问题。

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

如果语句在“@{}”中可用,Razor 视图引擎可以解析代码,因此在您的代码中,“@{}”出现在 "If" 语句中,因此不需要指定再次.