覆盖MVC4中表单输入的值

时间:2013-10-23 14:28:18

标签: c# asp.net-mvc asp.net-mvc-4 razor

我正在尝试使用MVC4创建一个表单,到目前为止一切顺利,但我遇到了一个问题,即通过设置相关的'value'属性,似乎无法为我的输入提供默认值。

我正在使用的代码:

@Html.TextBoxFor(x => x.Name, new { value="xxx" })

呈现以下内容:

<input id="EditDetail_SKU" name="EditDetail.SKU" type="text" value="" />

这有点烦人,因为value属性现在为空。似乎我可以在事后添加各种属性,并且它们受到尊重,ala:

@Html.TextBoxFor(x => x.Name, new { value="xxx", thing="whatever",foo="bar" })

收率:

<input foo="bar" id="name" name="Name" thing="whatever" type="text" value="" />

这些属性甚至可以弥补,但它们仍然受到尊重,那么为什么在这种情况下会忽略“价值”,我能做些什么来防止这种情况呢?

3 个答案:

答案 0 :(得分:1)

请参阅此主题: How to set a default value with Html.TextBoxFor?

快速而肮脏的方法是:

<%= Html.TextBoxFor(x => x.Age, new { @Value = "0"}) %>

请注意@和大写V

答案 1 :(得分:0)

默认值将是模型内Name属性的值。

这是strongly typed models在ASP.NET MVC中的工作方式。

在您的相应操作中,将Name变量指定为默认值。

public ActionResult Index()
{ 
    var model = new YourModel();
    model.Name = "Default Value";

    return View(model);
}

在您看来,

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

答案 2 :(得分:0)

使用@Value代替值。 value是关键字。