模型绑定不适用于复杂对象

西尔万·阿菲菲(Sirwan Afifi)

这是我要发布的视图:

@model WelcomeViewModel
@using (Html.BeginForm("SignUp", "Member", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post))
{

    ....
    <div class="form-group">
        @Html.EditorFor(model => model.SignUp.CompanyName, new {htmlAttributes = new {@class = "form-control" }})
    </div>
    <div class="form-group">
        @Html.EditorFor(model => model.SignUp.RegisteredNo, new {htmlAttributes = new {@class = "form-control" } })
    </div>
    ....
    <button type="submit" name="signup" class="btn">Register</button>
}

ViewModel:

public class WelcomeViewModel
{
    public SignInViewModel LogOn { get; set; }
    public SignUpViewModel SignUp { get; set; } 
}

动作方法:

[HttpPost, AllowAnonymous, ValidateAntiForgeryToken]
public virtual async Task<ActionResult> SignUp(SignUpViewModel model)
{
    if (!ModelState.IsValid)
        return View("SignIn", new WelcomeViewModel { SignUp = model });

    // other code
    return View();
}

当我发布数据时,模型将为空。我知道输入将生成为:

<input id="SignUp_CompanyName" name="SignUp.CompanyName">

但是模型联编程序接受以下内容:

<input id="SignUp_CompanyName" name="CompanyName">

现在我想知道如何删除该前缀?我知道我可以为每个输入显式添加名称:

@Html.TextBoxFor(model => model.SignUp.CompanyName, new { Name = "CompanyName" })

但我想以一种强类型的方式来做。

haim770

也许最简单的方法是将[Bind]属性及其Prefix设置应用于“ SignUp”:

public async Task<ActionResult> SignUp([Bind(Prefix="SignUp")] SignUpViewModel model)

参见MSDN

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AngularJS绑定不适用于复杂对象数组

来自分类Dev

在模型更改上刷新Dojo MVC组不适用于复杂对象

来自分类Dev

在模型更改上刷新Dojo MVC组不适用于复杂对象

来自分类Dev

ASP.NET MVC模型绑定不适用于AJAX GET,但适用于Post

来自分类Dev

AngularJS $watch 不适用于绑定对象

来自分类Dev

FluentValidation 不适用于外部模型对象的集合

来自分类Dev

数据绑定Controller-Service:适用于对象,不适用于数字

来自分类Dev

Xamarin绑定不适用于ListView

来自分类Dev

WPF绑定不适用于类

来自分类Dev

绑定不适用于ViewModel

来自分类Dev

WPF 绑定不适用于 ItemsControl

来自分类Dev

绑定不适用于用户实例

来自分类Dev

Kendo Grid字段可编辑:false不适用于复杂模型

来自分类Dev

迁移不适用于特定模型

来自分类Dev

Django ORM不适用于模型

来自分类Dev

模态不适用于模型

来自分类Dev

VueJS-模型绑定不适用于使用jQuery插件的输入

来自分类Dev

邮递员POST请求模型绑定不适用于IFormfile属性

来自分类Dev

模型绑定不适用于MVC回发,但formdata似乎还可以

来自分类Dev

WebAPI2模型绑定不适用于HTTP PUT

来自分类Dev

模型绑定不适用于angular2中的select

来自分类Dev

ASP.NET MVC模型绑定不适用于项目列表

来自分类Dev

json中的字符串替换不适用于复杂对象

来自分类Dev

NHibernate不适用于树对象

来自分类Dev

HazelcastInstanceAware不适用于嵌套对象

来自分类Dev

useState不适用于对象数组

来自分类Dev

.PasteSpecial不适用于Range对象

来自分类Dev

DeserializeObject 不适用于对象类型

来自分类Dev

jQuery 不适用于 XMLHttpRequest 对象