同じコントローラ内の別のアクションにデータをポストしようとしています。私はいくつかのドロップダウン、テキストボックス、ダイナミックに生成されたdiv(タイル)を持っていますが、各divはクリック可能ですが、ユーザーがdiv(Tile)をクリックすると、ドロップダウンコントロールの値、テキストボックス値を取得するjavascript関数が呼び出されます。これで、同じデータを別のアクションに投稿する必要があります(actionMethod2)戻ってきます、どうすればいいですか?jsonオブジェクトをコントローラにポストして表示する
私はajax postメソッドを使用しようとしましたが、そのactionMethod2によって返されたビューに移動できません。
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)
});
これは技術的に動作しますが、私が望むものではないthatsの、私は必要があります。...ここ
はjavascriptのある と私はシンプルなwindow.locationのを実行しようとしましたが、私はあまりにも値を投稿する必要があります(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);
}
アヤックスの全体のポイントは、同じページにとどまることです。ユーザーを別のview_に_redirectする場合は、ajaxを使用しないでください。ちょうどnotmal submitをしてください。 –
@Stephen:そうです、私はAjaxを使うべきではありません。しかし、私はjavascriptを使用して表示されたページでいくつかのデータを収集し、コントローラに送信する必要があり、コントローラは別のビューにリダイレクトされます。今私は、ここでフォームを使用していないことをどうやって行うのか分かりません.... – venu
しかし、単に「