在Jquery中,我需要告诉程序前往EmployeeController和Empl操作。我要如何告诉它这样做?我想用简单的方法来实现这一点,而不使用ajax。
在jQuery中,如何直接跳转到EmployeeController和Empl动作而不使用ajax?
在jQuery中,如何直接跳转到EmployeeController和Empl动作而不使用ajax?
window.location.href = "/{controller}/{action}" //in your case, /employee/empl
这能够工作是因为在你的Global.asax.cs文件中指定了路由。我建议你学习一下它的工作原理,因为这是MVC的基础之一....
到目前为止,所有的回答都很好,但使用神秘字符串来构建URL让我感到不适。我更喜欢像这样添加一个扩展名:
public static string GetUrl(this HtmlHelper, helper, string Action, string Controller, object RouteValues)
{
UrlHelper Url = new UrlHelper(HttpContext.Current.Request.RequestContext);
return Url.Action(Action, Controller, RouteValues);
}
然后在我的js代码中使用:
location.href = '@Html.GetUrl("Action", "Controller", new { foo=Model.Foo })';
这个框架更加一致,内部关注路由,并且给我一个集中处理Url的中心点。
还有一件事,
window.location = "whatever";
很好而且有效,仍然可以使用。
location.href = "whatever";
@Url.Action("Action", "Controller", new { foo = Model.bar })
。 - Kristof Claes当应用程序发布后,被接受的答案不起作用。 我不得不使用
window.location.href='@Url.Action("ActionName","ControllerName")'
对URI结构和路由进行假设,但是:
window.location = '/employee/empl/';
/controller/action
时才能执行。 - Dismissile并且用于参数
window.location.href = "/{controller}/{action}?parm1=val1&parm2=val2"