【问题标题】:Html.HiddenFor causing errorHtml.HiddenFor 导致错误
【发布时间】:2012-03-11 21:02:36
【问题描述】:

当我尝试将@Html.HiddenFor(@Model.ID) 添加到我的代码时,访问页面时出现以下错误:

编译器错误消息:CS0411:无法从用法。尝试明确指定类型参数。

我尝试阅读 MSDN,但 the documentation is awful(他们在此方法的文档中没有提供单个代码示例。

这是我的观点:

@model CustomerService.Entity.Order
@using CustomerService.Entity
@{
    ViewBag.Title = "OrderDetails";
}
<h2>
    OrderDetails</h2>
@using (Html.BeginForm("HandleSubmit", "Home", FormMethod.Post))
{    
    <table border="1">
        <tr>
            <td>
                <b>Order #</b>
            </td>
            <td>
                @Model.ID
            </td>
        </tr>
        <tr>
            <td>
                <b>Description</b>
            </td>
            <td>
                @Model.Description
            </td>
        </tr>
        <tr>
            <td>
                <b>Salesperson Name</b>
            </td>
            <td>
                @Model.SalespersonName
            </td>
        </tr>
    </table>
    <h3>
        Line Items</h3>

    <input id="btnAddLineItem" type="submit" name="AddLineItem" value="AddLineItem" />

    @Html.HiddenFor(@Model.ID)

    <table border="1">
        <tr>
            <td>
                <b>Line Item ID</b>
            </td>
            <td>
                <b>Description</b>
            </td>
        </tr>
        @for (int i = 0; i < @Model.LineItems.Count; ++i)
        {
            <tr>
                <td>
                    @Model.LineItems[i].ID
                </td>
                <td>
                    @Model.LineItems[i].Description
                </td>
            </tr>
        }</table>
}

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 razor


    【解决方案1】:

    HiddenFor 接受一个表达式。

    @Html.HiddenFor( model => model.ID )
    

    【讨论】:

      【解决方案2】:

      HiddenFor 方法应该将Expression 作为参数而不是值:

      @Html.HiddenFor(m => m.ID)
      

      代替:@Html.HiddenFor(@Model.ID)

      方法签名:

      HiddenFor<TModel, TProperty>(HtmlHelper<TModel>,
                                   Expression<Func<TModel, TProperty>>) 
      

      在纯文本中,您应该给出一个Expression,它获取模型类型的“实例”(在本例中为CustomerService.Entity.Order)并返回所需的属性(在本例中为ID

      MSDN

      【讨论】:

        猜你喜欢
        • 2011-06-10
        • 1970-01-01
        • 1970-01-01
        • 2012-07-09
        • 2016-08-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多