MVC3 Pop New Window / Просмотр и отправка введенных данных обратно в исходное открытое окно / Просмотр по завершении - PullRequest
0 голосов
/ 05 декабря 2011

На мой взгляд, пользователь ищет выпадающий список, в котором содержится список «Предписателей», если Предписатель не существует в базе данных, у него есть кнопка, которая открывает окно, содержащее представление «Добавить нового предписателя».Как я могу собрать данные поля первичного ключа для нового пользователя, введенного пользователем 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 голосов
/ 05 декабря 2011

Если я правильно вас понял, вы можете on popup close отправить запрос ajax, который вставит prescriber в БД и вернет вам идентификатор, например

$.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});
}
...