Надеюсь, вы можете помочь мне с одной диллемой. Я собираюсь написать кучу кода, прежде чем я задать свой вопрос ниже :)Открытое окно Telerik
Когда что-то нажал на моей странице:
<input type='button' value='1' name='derp1' onclick='OpenTelerikWindow(1)' />
<br/>
<input type='button' value='2' name='derp2' onclick='OpenTelerikWindow(2)' />
открыть окно Telerik с Jquery:
function OpenTelerikWindow(arg) {
var url = '/Controller/Derp/';
$.ajax({
type: "GET",
url: url,
dataType: "html",
data: { id: arg }
success: function (data) {
$('#PaymentWindow').data("tWindow").content(data);
$('#PaymentWindow').data("tWindow").center().open().refresh();
}
});
}
My Controller ActionResult:
public ActionResult Derp(int id)
{
SomeModel someModel = _GetModel(id);
return PartialView("Derp", someModel)
}
И тогда содержание моего окна Telerik идет что-то вроде этого:
@SomeModel
<div id="theDerpina">
<div>
//Some Stuff
@using (Ajax.BeginForm("Derpina1", "Controller", new { id = SomeModel.id }, new AjaxOptions
{
HttpMethod = "POST",
UpdateTargetId = "theDerpina",
InsertionMode = InsertionMode.Replace
}, new { id = "feedback-form" }))
{
//Some Stuff
<button type="submit" > Submit</button>
<br/>
<button type="button" > CloseWindow </button>
}
</div>
<div>
//More Stuff
@using (Ajax.BeginForm("Derpina2", "Controller", new { id = SomeModel.id }, new AjaxOptions
{
HttpMethod = "POST",
UpdateTargetId = "theDerpina",
InsertionMode = InsertionMode.Replace
}, new { id = "feedback-form" }))
{
//Different Stuff
<button type="submit" > Submit</button>
<br/>
<button type="button" > CloseWindow </button>
}
</div>
</div>
Мои две другие действия контроллера:
public ActionResult Derpina1(int id)
{
SomeModel someModel = _GetModel(id);
if(ModelState.IsValid)
{
//DoStuff
return View("SomeOtherView");
}
else
{
return PartialView("Derp", someModel);
}
}
public ActionResult Derpina2(int id)
{
SomeModel someModel = _GetModel(id);
if(ModelState.IsValid)
{
//DoDifferentStuff
return View("SomeOtherView");
}
else
{
return PartialView("Derp", someModel);
}
}
Когда я открываю окно один раз, все работает хорошо. Однако, если бы я должен был открыть Окно, закройте его, а затем снова откройте его, затем произойдет странное. Скажем, например, что я нажал кнопку отправки для Derpina1, я бы получил два вызова этого конкретного действия контроллера. Если я отслеживаю консоль в Firebug, я вижу два отдельных вызова для моего действия с контроллером. Тогда то же самое произойдет, если я закрою окно еще раз, снова открою его и снова отправлю, теперь действие контроллера теперь получит 4 вызова моего действия с контроллером.
Возможно, вы, ребята, можете указать на правильное направление. Должен ли я открывать окно Telerik по-другому, также должен ли я использовать другой метод для возврата ModelError, чтобы это произошло? (потому что я столкнулся с таким же поведением, если я получу ModelError)