Asp.net mvc 在ASP.NET MVC中,将属性值保留在HTTP POST上,并且在视图中为只读
我想在MVC视图中将属性显示为只读,当视图被HTTP发回时,属性值保持不变,而不是null 我尝试了下面的代码,但是model binder返回nullAsp.net mvc 在ASP.NET MVC中,将属性值保留在HTTP POST上,并且在视图中为只读,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-2,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 2,我想在MVC视图中将属性显示为只读,当视图被HTTP发回时,属性值保持不变,而不是null 我尝试了下面的代码,但是model binder返回null @model Car @Html.DisplayFor(x => x.Name); //need to be read only, but returns the value on HTTP POST public class Car { public string Name { get; se
@model Car
@Html.DisplayFor(x => x.Name); //need to be read only, but returns the value on HTTP POST
public class Car
{
public string Name { get; set; }
}
public ActionResult Index()
{
var car = new Car() {Name = "1"};
return View(car);
}
[HttpPost]
public ActionResult Index(Car car) **//Name is NULL**
{
return View(car);
}
提前谢谢 添加怎么样
@Html.HiddenFor(x => x.Name)
您仍然可以将
@Html.DisplayFor(x=>x.Name)
放在页面上进行显示。取决于您想要显示的内容-模型属性的值或属性的名称@Html.LabelFor
默认情况下将显示属性名称(例如,“名称”),除非您使用[DisplayName(“Car name”)]
或任何您想要显示的内容对viewmodel进行注释。我想你是想表现出它的价值,对吧?谢谢。是否存在使用一个字段而不是两个字段的替代方案。因为有很多属性要显示。嗯。。好的,您可能可以执行类似于@Html.TextBoxFor(x=>x.Name,new{@readonly=“readonly”})
的操作,并且能够在页面上显示Name属性,并在文章中进行反馈。不过我还没试过。我相信这会奏效。值得一试。