绑定前缀MVC

时间:2014-03-31 14:20:48

标签: asp.net-mvc-4

我看过How to use Bind Prefix?

但是,这是我的代码,它不起作用。 控制器名称为:“UserInfo.user_name”

 public JsonResult UniqueUserName([Bind(Prefix="UserInfo")] string user_name)
    {//user_name == null ?!?}

感谢的

更新

添加我的观点:

 @Html.EditorFor(x => x.UserInfo)

这是EditorTemplate:

<div>
            @Html.LabelFor(m => m.user_name)
            @Html.TextBoxFor(m => m.user_name, new { required = true})
            @Html.ValidationMessage("user_name", new { @class = "error"})
        </div>

这是模型:我已经从这里删除了更多属性和更多类,因为它没有任何区别。

public class Info
{       
    [DisplayName("User Name")]
    [Required]
    [Remote("UniqueUserName", "Create")]
    public string user_name { set; get; }

}

public class EvalInfo
{        
    public Info UserInfo { set; get; }
    public EvalInfo()
    {
        UserInfo = new Info();
    }
}

1 个答案:

答案 0 :(得分:1)

只有在您的视图中,如果您的模型使用UserInfo_user_name呈现,那么您可以使用Bind。我建议你阅读BindAttribute。让我们假设您认为两个属性存在一些歧义。然后你可以使用你的绑定。而且我认为你可以将它与模型一起使用。如果您的控制器名称为UserInfo.user_name则无关紧要。什么是重要的是模型。我想如果我们看到您的观点,我们可以获得一些重要信息。希望在阅读完链接后会对你有所帮助。

试试这个:

    `
 public JsonResult UniqueUserName([Bind(Prefix="UserInfo")] Info info)
     {
        //and retreive your user_name via the model info 
    }

`     我希望它会对你有所帮助。