MVC3弹出新窗口/查看并将输入的数据发送回原始打开窗口/查看完成时

时间:2011-12-04 23:23:55

标签: asp.net-mvc-3 views viewstate

在我看来,如果Prescriber,用户会搜索包含“Prescribers”列表的下拉列表 在数据库中不存在,它们有一个弹出包含“添加新内容”的窗口的按钮 处方者“查看。如何收集新用户输入Prescriber的主键字段数据并将其传回/重新填充下拉列表以包含新的Prescriber而不重新加载原始视图并丢失在其他字段中输入的信息?

<div class="editor-label">
            @Html.LabelFor(model => model.DEA_Number, "Prescriber's DEA #")
        </div>
        <div class="editor-field">
            @Html.DropDownList("DEA_Number", String.Empty)
            @Html.ValidationMessageFor(model => model.DEA_Number)
        </div>

        <div>
        <p>Prescriber Not in System? - Click to Add
        <input type="button" name = "ClickMe" value="Add New Prescriber" onclick= "javascript:window.open('/Prescriber/Create/','Customer Search',height='window.screen.height - 100', width='200',left='window.screen.width - 250' ,top='10',status='no',toobar='no',resizable='yes',scrollbars='yes')"/>
        </p>
        </div>

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你可以做的是on popup close发送一个ajax请求,在数据库中插入prescriber并返回id

$.post("/URL/To/Controller",{name:'nameEnteredByUSerHere'},function(data){
$("<option/>",{value:data.value,text:data.text}).appendTo("#IDofYourDropDown");
},'json')

,控制器看起来像

[HttpPost]
public ActionResult InsertPrescriber(string name){
//do some validation
//insert data
return Json(new{value="id of the inserted prescriber",text=name});
}