我有一个视图,它使用TextBoxFor帮助方法来编辑模型。像这样:
<div class="editor-field">
<%:Html.TextBoxFor(model => model.Property, new { @class = "mybox" })%>
<%: Html.ValidationMessageFor(model => model.Property)%>
</div>
因此,Modelbinder工作正常,我可以编辑和保存我的模型。
当我添加html5属性'type'和'step'时,就像这样
<div class="editor-field">
<%:Html.TextBoxFor(model => model.Property, new { @class = "mybox",@type = "number", @step = "1" })%>
<%: Html.ValidationMessageFor(model => model.Property)%>
</div>
我看到漂亮的数字控件而不是文本框,但是模型绑定刹车,每当我更改我的属性时,我在模型中收到0。提交属性。
我的代码出了什么问题?
这是我的简单模型
public class Model
{
[DisplayName("Property")]
public int Property
{
get;
set;
}
}
答案 0 :(得分:1)
尝试一下:
http://deanhume.com/Home/BlogPost/asp-net-mvc-html5-toolkit/29
根据您的代码,这对我有用:
控制器:
public class IndexController : Controller
{
public ActionResult Index()
{
return View();
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(Model model)
{
return Content(model.Property.ToString());
}
}
型号:
public class Model
{
[DisplayName( "Property" )]
public int Property
{
get;
set;
}
}
查看:
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<BindTest.Models.Model>" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Index</title>
</head>
<body>
<%using( Html.BeginForm( "index", "index" ) ){ %>
<div class="editor-field">
<%=Html.TextBoxFor(model => model.Property, new {@class = "mybox", @type = "number", @step = "1"})%>
<%=Html.ValidationMessageFor(model => model.Property)%>
</div>
<button type="submit" value="click Me">Click Me</button>
<% } %>
</body>
</html>
当我点击我的提交按钮时,控制器会收到我的数字输入控件中选择的数字并输出到浏览器。
我们需要看到更多有用的代码。