我想更新我的数据库中有两个值的记录,一个是ID,一个是“描述”。 ID永远不能改变,但是我依靠使用强类型的功能来做到这一点。所以,我有以下几点:禁用窗体元素ASP.NET MVC更新
Inherits="System.Web.Mvc.ViewPage<Business>"
这是好的,因为它可以让我把所有东西都拿回来。问题是,当我使用下面的行:
<%= Html.TextBox("BusinessID", ViewData.Model.BusinessID, new { disabled = "disabled", style = "width:50px;", @class = "uppercase", maxlength = "4" })%>
随着disabled = "disabled"
选项它不承认BusinessID,因此不将它传递给控制器,进而有问题结合起来的对象。
不是说你会需要它,但这里的控制器动作:
[HttpPost]
public ActionResult EditBusiness(Business business)
{
if (!ModelState.IsValid)
return View(business);
// update business here
_contractsControlRepository.UpdateBusiness(business);
return RedirectToAction("Businesses");
}
任何想法,为什么发生这种情况?我没有意识到表单元素在被禁用时在回发中完全隐藏。我不希望用户编辑该特定字段。我也试过Html.DisplayFor(b=>b.BusinessID)
没有任何运气。
宾果,非常感谢。 – Kezzer 2009-09-04 11:40:47
另外,从你给我我可以创建一个帮手为我做。 – Kezzer 2009-09-04 11:41:57