将强类型的HTML帮助器值变为简单的参数类型
我有一个ActionMethod,我试图从一个强类型的HTML帮助器提供的值中绑定一个字符串:
public class SampleController : Controller
{
public ActionResult Save(string name)
{
return Content(name);
}
}
我的视图包含复杂的对象...我试图使用强类型的助手,如:
@model MvcApplication2.Models.Sample
@using(Html.BeginForm("save", "sample")) {
@Html.TextBoxFor(x =>x.Product.Name)
<input type="submit" />
}
我知道TextBox使用名称Product.Name
渲染
<input id="Product_Name" name="Product.Name" type="text" value="">
并且我可以绑定到名称为product
的复杂Product
类型:
public ActionResult Save(Product product)
{
return Content(product.Name);
}
或使用Bind属性绑定到具有不同名称的属性:
public ActionResult Save([Bind(Prefix="Product")]Product p)
{
return Content(p.Name);
}
但我如何才能将它绑定到一个字符串值?
public ActionResult Save(string name)
{
return Content(name);
}
谢谢,Brian
使用输入字段的完整前缀(name属性的值)。 例如:
public ActionResult Save([Bind(Prefix="Product.Name")]string name)
{
return Content(name);
}
如果您希望获得更多控制,则始终可以使用自定义模型绑定器:
public class CustomModelBinder : IModelBinder
{
// insert implementation
}
public ActionResult Save([ModelBinder(typeof(CustomProductModelBinder))]string name){
// ...
}
链接地址: http://www.djcxy.com/p/19081.html
上一篇: Getting the strongly typed HTML helper value into a simple parameter type