Asp.net mvc 视图(RAZOR)上的只读和可更新字段,从模型填充

Asp.net mvc 视图(RAZOR)上的只读和可更新字段,从模型填充,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,razor,asp.net-mvc-2,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,Razor,Asp.net Mvc 2,我需要视图剃须刀上的只读和可更新字段,从模型填充。 例如: public class Doc { [UIHint("Readonly")] public int? TotalGoodsNumber { get; set; } #.... } 模板Readonly.cshtml: <span>@Model</span> 现在我已经生成了这样的html: <div class="editor-label"> &l

我需要视图剃须刀上的只读和可更新字段,从模型填充。 例如:

public class Doc
{
    [UIHint("Readonly")]
    public int? TotalGoodsNumber { get; set; }
    #....
}
模板Readonly.cshtml:

<span>@Model</span>
现在我已经生成了这样的html:

    <div class="editor-label">
        <label for="TotalGoodsNumber">Всего наименований товаров</label>
    </div>
    <div class="editor-field">            
    <span>8</span>

    <input data-val="true" data-val-number="Значение должно быть числовым." data-val-required="Обязательное поле." id="TotalGoodsNumber" name="TotalGoodsNumber" type="hidden" value="8" />
            <span class="field-validation-valid" data-valmsg-for="TotalGoodsNumber" data-valmsg-replace="true"></span>
    </div>
并且可以尝试通过隐藏字段的id选择必要的跨度来更新文本。因为此范围位于id为“TotalGoodsNumber”的字段之前。 我认为可以编写jquery来更新span文本

但是这个解决方案看起来有点复杂


谢谢你的建议

这里有一种方法可以满足您的要求:

1确保隐藏字段具有可预测的ID这将默认为属性名称,但我喜欢显式设置它

 @Html.HiddenFor(m => m, new { @id = "TotalGoodsNumber" });
2为您的span提供一个id,以便于选择:

 <span id="TotalGoodsNumberDisplay">@Model</span>
 <span id="TotalGoodsNumberDisplay">@Model</span>
 $('#TotalGoodsNumber').val('foobar');
 $('#TotalGoodsNumberDisplay').html('foobar');