Он делает именно то, что вы кодировали. Если вам нужно вернуть результат в текущее представление, вы должны использовать ajax вызов, который вернет результат действия.
пример
@using (Ajax.BeginForm("Action", "Controller", FormMethod.Post, new AjaxOptions() { HttpMethod = "POST", InsertionMode = InsertionMode.Replace, UpdateTargetId = "YourTargetForResult" }, new { @id = "ajaxForm" }))
Вы должны ссылаться на jquery .unobtrusive- ajax . js для получения обратной передачи в текущем представлении.
Пример на основе вашего комментария:
<input type="hidden" id="hdnResponseMessage" /> // add dom object where response hits
@using (Ajax.BeginForm("SetBreak", "YourControllerName", FormMethod.Post, new AjaxOptions() { HttpMethod = "POST", InsertionMode = InsertionMode.Replace, UpdateTargetId = "hdnResponseMessage" }, new { @id = "form" }))
{
@Html.ListBoxFor(m => m.arrReasons, Model.reasonsMultiSelectList, new { @class = "form-control" })
@Html.TextBoxFor(model => model.accessToken, new { id = "txtaccessToken" })
@Html.TextBoxFor(model => model.campaign, new { id = "txtcampaign" })
<br />
<button id="btn" type="submit" class="btn btn-block bg-primary" value="Submit" >Submit</button>
<br />
}
Контроллер:
[HttpPost]
public JsonResult SetBreak(breakReasonModel form)
{
string tok=form.accessToken;
string cmp = form.campaign;
string selreason = "";
for (int i=0;i < form.arrReasons.Length;i++)
{
selreason = form.arrReasons[i];
}
SetBreak obj = new SetBreak();
System.Collections.Generic.List<ISCampaigns> IScampaignNames = new System.Collections.Generic.List<ISCampaigns>();
IScampaignNames = obj.setNotReadyInCampaign(tok, cmp, selreason);
return Json("SetBreak");
}
jQuery установка прослушивателя в документе готов:
// add dom object listener
$('#hdnResponseMessage').bind('DOMNodeInserted', function () {
var txt = $('#hdnResponseMessage').text();
if (txt == 'SetBreak')
{
//do your stuff here;
}
});