【问题标题】:MVC model values not getting passed to controllerMVC 模型值未传递给控制器
【发布时间】:2013-05-09 09:17:28
【问题描述】:

我正在尝试使用 MVC 3.0 和 Razor 的非常基本的 MVC 项目。在此link 参考教程。

我使用名为“Contact”的模型类创建了一个用于编辑联系人的强类型视图。

namespace Practice.Models
{
    public class Contact
    {
        public string firstName;
        public string lastName;
        public string mobileNumber;
    }
}

“索引”方法使用列表类型视图显示所有联系人。当我点击联系人的“编辑”链接时,它会使用编辑视图在文本框中显示联系人详细信息。

但是,当我提交编辑表单时,我没有在控制器操作方法中获取模型值。它为每个属性显示 null。在这样一个简单的例子中,我到底可能缺少什么?

目录控制器

[HttpPost]
public ViewResult Edit(Contact model)
{
    contactRepository.Update(model);
    return View("Details", model);
}

查看

@model Practice.Models.Contact
@{
    ViewBag.Title = "Edit";
}

<h2>Edit</h2>

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript">            </script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"         type="text/javascript"></script>

@using (Html.BeginForm("Edit","Directory"))
{
@Html.ValidationSummary(true)
<fieldset>
    <legend>Contact</legend>
    @Html.TextBoxFor(m => m.firstName)
    @Html.TextBoxFor(m => m.lastName)
    @Html.TextBoxFor(m => m.mobileNumber)
    <p>
        <input type="submit" value="Save" />
    </p>
</fieldset>
}
<div>
    @Html.ActionLink("Back to List", "Index")
</div>

【问题讨论】:

    标签: asp.net-mvc-3 razor


    【解决方案1】:

    您的模型属性中缺少{ get; set; }

    【讨论】:

    • 谢谢KOL..这解决了问题!但是它怎么能在没有 { get; 的情况下更早地绑定值?设置;}到文本框?
    • 我相信如果你声明一个没有get的属性;放;它是只读的 - 因此您可能已经在视图中的文本框中看到了值 - 在此处阅读更多内容 - msdn.microsoft.com/en-us/library/w86s7x04.aspx
    • 感谢 KOL 提供链接,但可以在那里找到我问题的明确答案。
    • 找到一个有用的帖子here
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-18
    • 1970-01-01
    • 1970-01-01
    • 2017-05-08
    • 2012-05-31
    • 1970-01-01
    • 2011-07-27
    相关资源
    最近更新 更多