Необходимо разнести значения из формы в метод действия, который имеет другое представление, связанное с ним
Привет,
У меня есть довольно большая форма, которая имеет несколько полей, мне нужно передать значения этих полей методу действия, присвоить некоторые значения другому представлению и открыть его. Я пытался опубликовать эти значения с помощью ajax post метод действия выполняется, но представление остается прежним.
Я не использовал привязку модели для первого представления, из которого я отправляю значения в метод действия, поэтому я попытался использовать вызов ajax, есть ли какой-либо способ, которым я могу отправить значения в метод действия и передать в новое представление, которое я хотел после выполнения метода действия с помощью вызова ajax.
Я знаю, что могу достичь этого с помощью привязки модели и отправки, но у меня нет модели для представления, поэтому я могу сделать это с помощью самого вызова ajax.
Мой AJAX-вызов и методов действий, как показано ниже:
$("#btnChangeReport").click(function () { debugger; var res; var token = $('[name=__RequestVerificationToken]').val(); $.ajax({ type: "POST", url: '@Url.Action("ShowLegalEntityReport", "Report")', contentType: "application/json;charset=utf-8", dataType: 'json', async: false, headers: { '__RequestVerificationToken': token }, data: JSON.stringify({ 'legalEntityNumber': txtLegalEntityNumber.value, 'lENumOperator': "", 'legalEntityName': txtLegalEntityName.value, 'lENameOperator': "" , 'taxId': txtTaxId.value, 'taxIdOperator': "", 'submittingCounty': $('#idDDLForCounty').val(), 'submCountyOperator': "", 'legalEntityCity': txtLegalEntityCity.value, 'lECityOperator': "" }), success: function (result) { } }); });
Метод действия таков, как показано ниже:
public ActionResult ShowLegalEntityReport(string legalEntityNumber, string lENumOperator, string legalEntityName, string lENameOperator , string taxId, string taxIdOperator, string submittingCounty, string submCountyOperator, string legalEntityCity, string lECityOperator) { ReportViewer reportViewer = new ReportViewer(); reportViewer.ProcessingMode = ProcessingMode.Local; reportViewer.SizeToReportContent = true; reportViewer.Width = Unit.Percentage(900); reportViewer.Height = Unit.Percentage(700); DataRetrieveServiceClient drsc = new DataRetrieveServiceClient(); DataTable dt = CommonFunctions.ToDataTable(drsc.GetLegalEntityReport(legalEntityNumber, lENumOperator, legalEntityName, lENameOperator, taxId, taxIdOperator , submittingCounty, submCountyOperator, legalEntityCity, lECityOperator)); reportViewer.LocalReport.ReportPath = Request.MapPath(Request.ApplicationPath) + @"\Reports\LegalEntityReport.rdlc"; reportViewer.LocalReport.DataSources.Add(new ReportDataSource("LegalEntityDataSet", dt)); ViewBag.ReportViewer = reportViewer; return View(); }
Пожалуйста, помогите мне в этом отношении любая помощь ценится - заранее спасибо
Что я уже пробовал:
гуглить искать просить коллег о любой возможной помощи
F-ES Sitecore
Html-код вашего представления возвращается в параметре "результат" вашего метода успеха, но вы ничего с ним не делаете, поэтому вызываете действие и игнорируете результаты. Если вы хотите, чтобы этот html-код появился где-то на странице, вам нужно будет ввести его в DOM. Это действительно сработает только в том случае, если это частичный взгляд. Если это полный вид и вы хотите изменить всю страницу, то не используйте ajax вообще, просто опубликуйте форму, ajax действительно используется только тогда, когда вы хотите обновить часть страницы.