【发布时间】:2014-06-01 18:50:40
【问题描述】:
当客户端单击编辑时,我有一个网格,就像打开了一个表单一样。用户只能编辑一些值(让用户只编辑当前订单的发货日期)但是当我发送表单时,不可编辑字段的值在发布时为 NULL
当我显示时:
@Html.Display(model => model.Rep)
或:
@Html.TextBoxFor(model => model.ClientName, new { disabled = "disabled", @readonly = "readonly" })
值显示正确,但是当我提交表单时,值是空的。 视图:
@model Models.Orders
@{
Layout = null;
}
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link href="~/Content/pure-release-0.5.0/pure-min.css" rel="stylesheet" />
</head>
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<body>
<form class="pure-form">
<fieldset>
<legend>A Stacked Form</legend>
<div class="pure-g">
<div class="pure-u-1 pure-u-md-1-3" aria-disabled="true" aria-readonly="true">
<label for="first-name">@Html.LabelFor(model => model.Rep)</label>
@Html.Display(model => model.Rep)
</div>
<div class="pure-g">
<div class="pure-u-1 pure-u-md-1-3" aria-readonly="true">
<label for="first-name">@Html.LabelFor(model => model.ClientName)</label>
@Html.TextBoxFor(model => model.ClientName, new { disabled = "disabled", @readonly = "readonly" })
</div>
</div>
</div>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
</form>
</body>
}
</html>
<script type="text/javascript">
$(document).ready(function () {
$(".Titre").click(function () {
$(this).next('.Contenu').slideToggle("slow");
});
$("#Model").prop('disabled', true);
});
</script>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}^
型号:
public class Orders
{
public int ID { get; set; }
public string Rep { get; set; }
public string ClientName { get; set; }
}
控制器:
当用户点击网格上的编辑时:
public ActionResult Edit(int id = 0)
{
Orders order = db.Orders.Find(id);
if (order == null)
{
return HttpNotFound();
}
return View(order);
}
在帖子中:
[HttpPost]
public ActionResult Edit(Orders order)
{
if (ModelState.IsValid)
{
db.Entry(order).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(order);
}
当我调试时,我发现订单上的值是 NULL
我认为问题在于我将数据从网格发送到表单的方式,但我将 easyui 更改为使用 GridMVC 并且仍然存在问题。
我使用:在 View TextBoxFor for readOnly + disabled as attribut 但同样的问题
我试过了:
在模型中:[ReadOnly(true)]
+ 在视图中:@Html.EditorFor(model => model.Rep) 但我能够编辑我想要阻止的代表
我尝试使用 Javascript 将 EditorFor 设为只读,但我能够编辑
您能帮帮我吗,我尝试了所有找到的方法,但我的代码中缺少一些东西
谢谢
【问题讨论】:
标签: asp.net-mvc forms asp.net-mvc-4