【发布时间】:2016-02-22 10:57:10
【问题描述】:
标题可能令人困惑,所以这是我的问题: 仅当我的操作用于编辑(类似于 EditLocation)并且我的操作用于添加新记录(AddLocation)时,我才希望在我的视图中使用只读文本框,我想要一个可编辑的文本框。
我的 ff。代码有效,但我想知道是否有“更清洁”的解决方案
@using (Html.BeginForm(Model.Location.Id == 0 ? "AddLocation" : "EditLocation", "Location"))
{
<fieldset>
@Html.HiddenFor(x => x.Location.Id)
@Html.HiddenFor(x => x.Location.CompanyGroupId)
@Html.HiddenFor(x => x.CompanyGroup.Id)
@Html.HiddenFor(x => x.CompanyGroup.Code)
<div class="form-group">
<strong><span>@ResourcesCommon.Location_Code</span></strong>
@if (Model.Location.Id == 0)
{
@Html.TextBoxFor(x => x.Location.Code, new { @class = "form-control" })
@Html.ValidationMessageFor(x => x.Location.Code)
}
else
{
@Html.TextBoxFor(x => x.Location.Code, new { @class = "form-control", @readonly = "readonly" })
@Html.ValidationMessageFor(x => x.Location.Code)
}
</div> ...
谢谢,祝你有个美好的一周!
【问题讨论】:
-
一种选择是创建您自己的
HtmlHelper扩展方法(例如refer this answer),但实际上,您应该使用2 个视图(并为常见的html 使用部分) -
我完全同意创建两个单独的视图,但应用程序的所有者想要一个视图以实现可重用性。
-
认真的吗?它是维护的噩梦并且难以调试。如果他们想要可重用性,那么对视图的公共部分使用部分。
-
我同意,投票赞成你的评论:D
标签: asp.net-mvc model-view-controller razor razorengine