【发布时间】:2016-05-21 12:51:33
【问题描述】:
您好,我必须将 Id(从特定字段中选择)从父视图传递到子视图。我会清楚地解释我的问题。
父视图
在我的父视图中,我有两个字段。客户名称和联系人。两者都是下拉菜单。两者都是级联下拉菜单。如果我选择 CustomerName,则与 CustomerName 相关的 ContactPerson 将自动加载到 ContactPerson 下拉列表中。
假设如果 ContactPerson 名称不在列表中,则意味着我将单击 ContactPerson 附近的 + 按钮。它将打开一个弹出窗口。弹出窗口在下面
弹出窗口(子视图)
现在一切正常。现在我有一个新问题。也就是说,如果我选择 CustomerName 然后选择 ContactPerson 但联系人姓名不在列表中。所以我点击 + 按钮,它将打开弹出窗口,同时它必须将 ID 从父视图(我在父视图 CustomerName 下拉列表中选择的 CustomerID)传递到 CustomerName 字段(在弹出窗口中窗口子视图)。我如何做到这一点。任何人都可以帮助我解决这个问题。我试图根据我的最佳水平解释我的问题任何理解我的问题的人都可以对这个问题提出一些解决方案或建议。
我的查看代码
父视图下拉列表
@Html.Label("Customer Name", new { @class = "control-label" })
@Html.DropDownListFor(model => model.CustomerID, new SelectList(string.Empty, "Value", "Text"), "Please select a Customer", new { @class = "form-control required", type = "text" })
模态表单视图
<div class="col-sm-3">
<span style="color: #f00">*</span>
@Html.Label("Contact Person", new { @class = "control-label" })<a href="#" class="btn btn-primary" id="modal-opener" style="float: right; Width: 28px; height: 28px; ">+</a>
<div id="dialog-modal" title="Add New Contact Person" style="display:none">
<div class="box-body">
@Html.Label("Customer Name")
@Html.DropDownListFor(model => model.CustomerID, new SelectList(string.Empty, "Value", "Text"), "Please select a Customer", new { @class = "form-control required", type = "text", id = "CustomerName" })
@Html.LabelFor(model => model.ContactPerson)
@Html.TextBoxFor(model => model.ContactPerson, new { @class = "form-control", type = "text" })
@Html.ValidationMessageFor(model => model.ContactPerson)
....
<div class="box-footer">
<input id="Button1" class="btn btn-primary" type="button" value="Save" onclick="SaveContact()" />
</div>
</div>
</div>
</div>
我的 J-query 代码
$(function () {
$("#modal-opener").click(function () {
debugger
$("#dialog-modal").dialog("open");
});
....
})
提前谢谢。
【问题讨论】:
-
为什么在模态中需要客户名称的下拉列表?您肯定希望这是主视图中客户名称的值吗? (在这种情况下,您应该从主视图传递 CustomerId 并只显示客户名称,因此它不可编辑)
-
不斯蒂芬我不希望该字段作为下拉菜单(弹出窗口中的客户名称)。我将该字段保留为文本框。 CustomerID 在父视图中的客户名称字段的意义上。它是下拉菜单。
-
实际上它应该只是一个
<div>来显示客户名称,因为您不需要提交它(如果您愿意,可以将其设置为看起来像一个文本框)。您需要CustomerID属性值的隐藏输入。主视图中客户名称下拉列表的html是什么(特别是它的id属性是什么) -
等待我将发布我的父视图 dropdwon 编码
-
好的,等我去查一下斯蒂芬
标签: c# jquery ajax asp.net-mvc-4