我有一个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);
}
谢谢, 布赖恩
答案 0 :(得分:1)
使用输入字段的完整前缀(name属性的值)。例如:
public ActionResult Save([Bind(Prefix="Product.Name")]string name)
{
return Content(name);
}
如果您希望获得更多控制权,可以随时使用custom model binder:
public class CustomModelBinder : IModelBinder
{
// insert implementation
}
public ActionResult Save([ModelBinder(typeof(CustomProductModelBinder))]string name){
// ...
}