在ASP.NET MVC中保持属性值在HTTP POST上,并且在视图上是只读的

时间:2011-08-25 17:21:53

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-2

我想在MVC视图上显示一个只读属性,当视图被HTTP回发时,属性值保持不变,而不是null。

我尝试了下面的代码,但模型绑定器返回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; 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);
        }

提前致谢!

1 个答案:

答案 0 :(得分:2)

如何添加

@Html.HiddenFor(x => x.Name)

您仍然可以将@Html.DisplayFor(x => x.Name)放在页面上以供显示。