将两种表格提交一项动作ASP.NET



我正在尝试将两种表格提交给一个动作。我不知道这是一个好主意,以及如何做得更好。每种形式都有自己的部分视图,并且使用相同的模型两种表单。我的意思是模型由表格分开。

这是视图模型和模型:

public class TestViewModel
{
    public Foo Foo { get; set; }
    // here is some other data for main form
}
public class Foo
{
    public string Name { get; set; }
    public string Street { get; set; }
}

动作方法:

    [HttpPost]
    public ActionResult Add(Foo foo)
    {
        return View();
    }

主视图:

@model SushiJazz.Models.ViewModels.TestViewModel
<body>
    <div id="frmName">
        @{Html.RenderPartial("NameFrm"); }
    </div>
    <div id="frmStreet">
        @{Html.RenderPartial("StreetFrm"); }
    </div>
    <div>
        <input type="submit"  value="btn" id="btn-submit"/>
    </div>
</body>

第一形式:

@model SushiJazz.Models.ViewModels.TestViewModel
@using (Html.BeginForm("Add", "Test", FormMethod.Post, new { @id="name-frm"}))
{
    @Html.TextBoxFor(model => model.Foo.Name);
    <input type="submit" value="name" />
}

第二形式:

@model SushiJazz.Models.ViewModels.TestViewModel
@using (Html.BeginForm("Add", "Test", FormMethod.Post, new { @id="street-frm"}))
{
    @Html.TextBoxFor(model => model.Foo.Street)
    <input type="submit" value="street" />
}

我想通过btn-submit单击提交这两种表格以添加操作。我的意思是不要调用两次添加操作,而是要获得foo.name and foo.Street填充不同表格,请添加操作并将完全填充的Foo模型传递给它。

有可能吗?也许还有其他一些方法?

我想您只是在演示一个概念,因为在这种情况下,将这些小部分分为单独的部分视图没有任何意义。

,但只需将@using (Html.BeginForm...从每个部分视图移动,以将所有标记都包含在主视图中,并包含两个@{Html.RenderPartial部分。

最新更新