asp.net mvc4 を使用して Web アプリを開発しています。コントローラー アクション メソッドへの ajax 呼び出しがあり、成功したコールバックで、2 つのパラメーターを持つ別のアクション メソッドにリダイレクトする必要があります。window.location.href がリダイレクトに機能することは知っていますが、パラメーターを渡す方法がわかりません。誰か助けてくれませんか?
ありがとう
asp.net mvc4 を使用して Web アプリを開発しています。コントローラー アクション メソッドへの ajax 呼び出しがあり、成功したコールバックで、2 つのパラメーターを持つ別のアクション メソッドにリダイレクトする必要があります。window.location.href がリダイレクトに機能することは知っていますが、パラメーターを渡す方法がわかりません。誰か助けてくれませんか?
ありがとう
パラメータは次のように渡すことができます。
window.location.href = '@Url.Action("Action", "Controller", new { param1 = "", param2 = "" })';
HTML:
<input type="text" id="UserName" name="UserName" />
<input type="button" onclick="MyFunction()"value="Send" />
<div id="UpdateDiv"></div>
Javascript:
function MyFunction() {
var data = {
UserName: $('#UserName').val(),
};
$.ajax({
url: "/Home/GetEmployer",
type: "POST",
dataType: "json",
data: JSON.stringify(data),
uccess: function (mydata) {
$("#UpdateDiv").html(mydata);
history.pushState('', 'New URL: ' + href, href); // This Code lets you to change url howyouwant (Optional)
});
return false;
}
}
コントローラ:
public ActionResult GetEmployer(string UserName,MyModel model)
{
var stringView = RenderRazorViewToString("YOURPARTİALVİEW", model);
return Json(stringView, JsonRequestBehavior.AllowGet);
}
Json に必要
public string RenderRazorViewToString(string viewName, object model)
{
ViewData.Model = model;
using (var sw = new StringWriter())
{
var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext,viewName);
var viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
viewResult.View.Render(viewContext, sw);
viewResult.ViewEngine.ReleaseView(ControllerContext, viewResult.View);
return sw.GetStringBuilder().ToString();
}
}