【问题标题】:MVC - Multiple forms on the same page in partial view using dataannotationsMVC - 使用数据注释在部分视图中的同一页面上的多个表单
【发布时间】:2016-07-22 05:11:51
【问题描述】:

我有一个在多个页面上多次出现的表单。我想把这个表单放在一个局部视图中,并使用数据注释来验证它。

这是我目前得到的:

控制器:

public ActionResult Form()
{
    return PartialView("_Form", new FormInput());
}


[HttpPost]
public ActionResult Form(FormInput model)
{
    if (!ModelState.IsValid)
    {
        return PartialView("_Form", model);
    }

    return PartialView("Form", new FormInput());
}

查看:

<div>
    @Html.Action("Form", "Forms")
</div>
<div>
    @Html.Action("Form", "Forms")    
</div>

局部视图:

@using (Html.BeginForm("Form", "Forms"))
{
    <div>
        @Html.TextBoxFor(x => x.Name)
        @Html.ValidationMessageFor(x => x.Name)
    </div>
    <div>
        @Html.TextBoxFor(x => x.Email)
        @Html.ValidationMessageFor(x => x.Email)
    </div>
    <input type="submit"/>
}

在这段代码中,控制器只返回部分视图而不是主视图。我做错了什么?

是通过 ajax.beginform 解决此问题的唯一解决方案吗?我真的很想使用标准帖子。

提前致谢!

【问题讨论】:

  • 返回主视图的action方法是什么样的?
  • 嗯.. 好吧,控制器看起来不同,因为表单出现在页面的不同位置。有些只返回一个视图,有些返回一个带有模型的视图。

标签: asp.net-mvc forms validation data-annotations partial-views


【解决方案1】:

您需要在控制器的 get 方法中返回一个“视图”。

然后,在您的视图页面上将部分视图呈现为:

@Html.Partial("_Form", new FormInput())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-06
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多