将一个局部视图数据传递到另一个局部视图

时间:2013-03-04 14:38:04

标签: c# ajax asp.net-mvc-2

我有一个主视图和两个部分视图。

1部分视图具有:

  • 的DropDownList
  • 文本框
  • 添加按钮

第二部分视图有:

  • 两个文本框
  • 在哪一个显示第一个partialView的DropDownList的值
  • 和第二个显示TextBox的第一部分视图的值。

我想要实现的功能,当Click Event上出现Add Button时,DropDownListTextBox中的数据应出现在第二个部分视图{{1}内(另外TextBoxes的数量取决于TextBoxes收到的Clicks的数量。我目前对如何传递数据并保留数据感到困惑。

以下是第一部分视图的代码(包括Add ButtonDropDownList)..

TextBox

用户插入所需服务后,必须将第二个局部视图中的所有文本框值插入到数据库中。我的问题是我必须维护所有值但不将数据插入数据库。它将在使用后单击完成按钮插入。(我也可以在第二个局部视图中使用表,但该表的值必须可以插入DB中。)

1 个答案:

答案 0 :(得分:1)

1 尝试渲染动作而不是渲染局部视图。

如果DropDown和Textbox中的值必须先保存在数据库中,这意味着您必须先提交数据。

因此,操作将从DB获取所需数据以呈现第二个局部视图并将其返回。

请参阅渲染操作:http://haacked.com/archive/2009/11/17/aspnetmvc2-render-action.aspx

<% using (Html.BeginForm("AddServices", "Controller1", FormMethod.Post, new { id = "form" }))
   {%>
<%: Html.ValidationSummary(true) %>
<div class="edit-set">
<label>Nature of Service:</label>
<div class="editor-field">
    <%: Html.DropDownList("ddlServiceType", (SelectList)ViewData["ServiceType"] as SelectList, "--Select Nature Of Service--", new { onchange = "FillServiceType();" })%>
    <%: Html.HiddenFor(model => model.Id)%>
    <label>Comment:</label>
    <input type="text" id="comment" />
</div>
<input type="submit" value="+ Add More Service(s)" onclick="InsertService()" name="submitButton"/>
</div><input type="submit" value="Done" name="submitButton"/>


<%= Html.Action("MyAction", "Controller", new {ID = Model.id}) %>


<% } %>