У меня открыто модальное окно с настройкой формы mvc в модальном окне. Затем у меня есть настройка кнопки «Отправить» JavaScript. Когда пользователь нажимает кнопку отправить, данные сохраняются в базу данных правильно, ОДНАКО ... Я просто хочу, чтобы пользователь оставался в открытом диалоговом окне после сохранения. Вместо этого, пользователь перенаправляется в полное окно браузера, ТОЛЬКО URL ссылки для формы ("http://localhost:55263/ClaimOrders/ClaimOrder"). Модальное окно пропало. Все, что я хочу, это сохранить мои данные и вернуть сообщение модальному всплывающему окну, которое в основномговорит: «Данные сохранены». Больше ничего. Никаких переадресаций.
В моем контроллере я пробовал и PartialViewResult & ActionResult с [httppost], но безуспешно с любым из них. Любая идея, что яне так?
Вот сокращенная версия моего кода:
Вид :
<div>
@using (Html.BeginForm(null, null, FormMethod.Post, new { id = "claimOrderForm" }))
{
<div id="claim-order" class="standard-bubble" style="margin: 0">
<fieldset>
<legend>Section 1</legend>
<div class="row">
<div class="indent-large-header">
Diagnosis:
</div>
<div class="indent-content">
@Html.TextBoxFor(m => m.ClaimOrderCasePrep.Diagnosis)
</div>
</div>
</fieldset>
</div>
@Html.HiddenFor(m => m.ClaimOrder.ClaimOrderId, new { @class = "ClaimOrderId", @id = "ClaimOrderId" })
}
</div>
Контроллер
[HttpPost]
public ActionResult ClaimOrder(ClaimOrderViewModel model)
{
int claimOrderId;
int.TryParse(Request.Form["ClaimOrder.ClaimOrderId"], out claimOrderId);
model.ClaimOrderId = claimOrderId;
//save data here
string json = "";
var jsonSerializerSettings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() };
json =
JsonConvert.SerializeObject(
new
{
claimOrderId = model.ClaimOrderCasePrep.ClaimOrderId }, Formatting.Indented, jsonSerializerSettings);
return Content(json, "application/json");
}
Javascript Submit
ClaimOrder.prototype.post = function () {
var container = claimOrder.findDialogContainer().find("#claimOrderContainer");
$('#ClaimOrderId').val(container.find(".ClaimOrderId").val());
$("#claimOrderForm").submit();
};
Как я уже сказал, он проходит через HttpPost и сохраняет нормально, но затем перенаправляет на исходный URL ("http://localhost:55263/ClaimOrders/ClaimOrder"). Я также попробовал PartialViewResult со следующей строкой возврата, но не повезло:
return PartialView("ClaimOrder", model);