javascript - 带有 java 脚本的 MVC 中的用户友好 URL
问题描述
在Route.config
文件中使用以下代码成功地将用户路由到控制器search
内的操作方法:Home
routes.MapRoute(
name: "search",
url: "{controller}/{action}/{inpSearch}",
defaults: new { controller = "Home", action = "search", inpSearch = "" }
);
search
Home
控制器内的动作方法代码:
public ActionResult search(string inpSearch)
{
var a = (from i in db.Items
where i.ItemName.Contains(inpSearch) ||
i.Category.Name.Contains(inpSearch) ||
i.Brand.Name.Contains(inpSearch)
select i).ToList();
return View(a);
}
对于用户友好的 URL,我使用了以下 javaScript:
$('#inpSearch').on('keyup', function(e){
if (e.keyCode === 13) {
var baseUrl = '@Url.Action("search", "Home")/'
var url = baseUrl + $('#inpSearch').val();
window.location.href = url;
}
})
如您所见,我需要将inpSearch
字符串作为参数传递给控制器search
内的此操作方法。Home
不知道我是怎么做到的。
例如,用户友好的 URL(即 /Home/search/car)运行良好。
解决方案
尝试使用参数作为
@Url.Action("ActionName", "ControllerName", new { paramName1 = paramValue1 })
或者
window.location.href ="/Home/search?inpSearch="+$('#inpSearch').val()