加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-4 – ASP.NET MVC4模型没有绑定

发布时间:2020-12-16 03:58:55 所属栏目:asp.Net 来源:网络整理
导读:我有一个非常简单的ASP.NET MVC4页面.它正在呈现CustomerModel的编辑表单.表单正确显示,但是当我点击编辑并回发时,模型没有被绑定.相反,CustomerModel的所有属性都保留其默认值.请注意,正在调用正确的控制器方法,因此这不是问题. 我可以看到表单值与模型属性
我有一个非常简单的ASP.NET MVC4页面.它正在呈现CustomerModel的编辑表单.表单正确显示,但是当我点击编辑并回发时,模型没有被绑定.相反,CustomerModel的所有属性都保留其默认值.请注意,正在调用正确的控制器方法,因此这不是问题.

我可以看到表单值与模型属性(Id,Name,Description)匹配的名称,但模型没有设置它们.

想法?

这是模型:

public class CustomerModel
{
    [Required] 
    public Guid Id;

    [Required]
    public string Name;

    [Required]
    public string Description;
}

这是相关的控制器方法:

[HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Edit(CustomerModel customerModel)
    {
        if (ModelState.IsValid)
        {
            //...Do stuff

            return RedirectToAction("Index");
        }

        return View(customerModel);
    }

最后,这是一个带有填充值的表单集合的屏幕截图:

解决方法

您的模型有公共字段但不包含公共属性,这些不一样.

改成:

public class CustomerModel
{
    [Required] 
    public Guid Id {get; set;}

    [Required]
    public string Name {get; set;}

    [Required]
    public string Description {get; set;}
}

默认的MVC模型绑定器将使用属性,而不是字段.

更多相关信息 – http://rightbrainleft.net/2011/02/default-mvc-model-binder-doesnt-like-fields/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读