我正在尝试将数据发布到同一控制器中的其他操作。所有这些天我都使用表单提交或带有查询参数的url,我目前的情况不同:
要求:在其中一个视图中我们有一些下拉列表,文本框和动态生成的div(Tiles),每个div都是可点击的,现在当用户点击div(Tile)时,调用javascript函数来获取下拉控件&# 39; s值,文本框值,现在我需要将该数据发布到同一个控制器中的不同动作(比如actionMethod2)并显示它返回的任何视图,我该怎么做?
我尝试使用ajax post方法,但意识到我无法移动到该actionMethod2返回的视图。 我试图做一个简单的window.location,但我也需要发布值...
这是javascript:
var searchModel = {};
searchModel.StartDate = $('#dvSearchDateRange').attr('data-startDt');
searchModel.EndDate = $('#dvSearchDateRange').attr('data-endDt');
searchModel.Status = propertyName;
searchModel.StatusText = tileText;
searchModel.AgencyId = cascadOADdropdowns.selectedAgencyId;
searchModel.DeptId = cascadOADdropdowns.selectedDeptId;
searchModel.AgencyName = cascadOADdropdowns.selectedAgencyName;
searchModel.DeptName = cascadOADdropdowns.selectedDeptName;
$.ajax({
url: referralSearchUrl, // /Home/ReferralsList'
type:"POST",
contentType: "application/json",
dataType: "json",
data: JSON.stringify(searchModel)
});
这在技术上有效,但这不是我想要的,我需要显示动作方法返回的整个视图(就像你从url调用一样)。
HomeController:
//this method provides data to dynamically generate divs. You can consider this as user's landing view(Page)
public ActionResult Index(DashboardSearchViewModel vm)
{
//VMs
UserInfoViewModel userInfoVM = MySession.GetSession<UserInfoViewModel>(Constants.USER_INFO);
LookupsViewModal lookupsVM = new LookupsViewModal();
//DAL, BAL
DashboardBA dashboardBA = new DashboardBA();
LookupsBA lookupsBA = new LookupsBA();
vm.SearchStartDate = DateTime.Now.AddMonths(-dateRange);
vm.SearchEndDate = DateTime.Now;
lookupsVM.AgencyId = vm.AgencyID = userInfoVM.UserInforFromES.AgencyID;
lookupsVM.DeptId = vm.DepartmentID = userInfoVM.UserInforFromES.DeptID;
lookupsVM.OrgId = userInfoVM.UserInforFromES.OrgID;
lookupsVM.logonId = userInfoVM.LogonID;
vm.LoggedInUserInformation = userInfoVM;
vm = dashboardBA.GetDashboardSummary(vm);
lookupsVM = lookupsBA.GetLookups(lookupsVM);
TempData[Constants.LOOKUPS] = lookupsVM;
return View(vm);
}
/*This is the action method i need to post values to and display returned view.Its like submitting data by user and redirect user to different view (by server)*/
public ActionResult ReferralsList(ReferralSearchFilersViewModel searchValues)
{
return View(vm);
}
答案 0 :(得分:0)
更改您的操作以返回PartialViewResult
。您可能需要在部分剃刀视图中设置@{ Layout = null }
。
在JQuery ajax调用的success
回调中,在页面上填充部分<div>
的部分结果。 e.g。
$.ajax({
url: referralSearchUrl, // /Home/ReferralsList'
type:"POST",
contentType: "application/json",
dataType: "json",
data: JSON.stringify(searchModel),
success: function(partial) {
$('#SomeDiv').html(partial);
}
});