如何从jquery回调将参数传递给控制器​​操作方法?

时间:2013-09-23 20:06:33

标签: jquery asp.net asp.net-mvc-4

我正在使用asp.net mvc4开发一个Web应用程序。我有一个对控制器动作方法的ajax调用,并且在成功回调时,我需要重定向到具有2个参数的不同动作方法。我知道window.location.href适用于重定向,但我不知道如何传递参数。有人可以帮忙吗?

由于

3 个答案:

答案 0 :(得分:2)

您可以尝试此操作,使用操作和参数调用特定控制器。

window.location.href = "@Url.Action("Action", "Controller")" +"/"+ parameter ;

用“/”分隔每个参数。

答案 1 :(得分:1)

您可以按如下方式传递参数:

window.location.href = '@Url.Action("Action", "Controller", new { param1 = "", param2 = "" })';

答案 2 :(得分:0)

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();
}
}