【发布时间】:2014-10-06 17:12:58
【问题描述】:
我正在尝试创建文章列表。允许用户一次编辑一个并将其发布回数据库。我可以显示什么是好的,但是当表单发布时,模型没有绑定到 http 回发。我的代码如下。
我有以下 POCO 输入类:
public class ArticleInputModel
{
public int articleID { get; set; }
[AllowHtml]
[DataType(DataType.MultilineText)]
public string title { get; set; }
[AllowHtml]
[DataType(DataType.MultilineText)]
public string content { get; set; }
}
以下控制器:
[ValidateInput(false)]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Set(ArticleInputModel articleInputModel)
{
// Do Work
}
还有以下观点:
@model List<TRN.DAL.Article>
<div class="container">
@for (var articleIndex = 0; articleIndex < Model.Count; articleIndex++)
{
using (Html.BeginForm("Set", "Articles", FormMethod.Post))
{
<h1 id="title" class="editable mce-content-body" contenteditable="true" spellcheck="false" style="position: relative;">@Model[articleIndex].title</h1>
<div id="content" class="editable mce-content-body" style="width: 100%; position: relative;" contenteditable="true" spellcheck="false">
@Model[articleIndex].content
</div>
<div>
<button type="submit" class="btn btn-trn">Submit</button>
</div>
}
}
</div>
【问题讨论】:
-
您是否从您的 Set 控制器方法中返回该模型?
-
不,它是从一个单独的控制器返回并发布到一个具有完全不同名称的控制器。它使控制器模型完全为空。
-
看起来您的模型是 List
类型,但是您的控制器方法采用 ArticleInputModel,您可以尝试让控制器采用 TRN.DAL.Article 类型吗?看看这是否有效?虽然,属性名称是相同的,所以我不确定这会有所不同
标签: asp.net razor asp.net-mvc-5