当我尝试将@Html.HiddenFor(@Model.ID)添加到代码中时,访问该页面时出现以下错误:
Compiler Error Message: CS0411: The type arguments for method 'System.Web.Mvc.Html.InputExtensions.HiddenFor(System.Web.Mvc.HtmlHelper, System.Linq.Expressions.Expression>)' cannot be inferred from the usage. Try specifying the type arguments explicitly.
我尝试阅读MSDN,但是文档太糟糕了(它们在文档中没有提供此方法的单个代码示例。
这是我的观点:
@model CustomerService.Entity.Order
@using CustomerService.Entity
@{
ViewBag.Title ="OrderDetails";
}
OrderDetails
@using (Html.BeginForm("HandleSubmit","Home", FormMethod.Post))
{
Order # | @Model.ID |
Description | @Model.Description |
Salesperson Name | @Model.SalespersonName |
Line Items
@Html.HiddenFor(@Model.ID)
Line Item ID | Description |
@for (int i = 0; i < @Model.LineItems.Count; ++i)
{
@Model.LineItems[i].ID
@Model.LineItems[i].Description
}
}
HiddenFor接受一个表达式。
@Html.HiddenFor( model => model.ID )
HiddenFor方法应将Expression作为参数而不是值:
@Html.HiddenFor(m => m.ID)
代替:@Html.HiddenFor(@Model.ID)
方法签名:
HiddenFor(HtmlHelper,
Expression>)
用纯文本格式,您应该给出一个Expression,该Expression获得模型类型的"实例"(在这种情况下为CustomerService.Entity.Order)并返回所需的属性(在这种情况下为ID)
MSDN