在Route.config
文件中使用以下代码成功地将用户路由到Home
Controller 内的search
操作方法:
routes.MapRoute(
name: "search",
url: "{controller}/{action}/{inpSearch}",
defaults: new { controller = "Home", action = "search", inpSearch = "" }
);
Home
Controller 内的search
操作方法代码:
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
字符串作为参数传递给 Home
Controller 内的此 search
操作方法。不知道我是怎么做到的。
示例中用户友好的 URL(即/Home/search/car)运行良好。
最佳答案
尝试使用参数为
@Url.Action("ActionName", "ControllerName", new { paramName1 = paramValue1 })
或
window.location.href ="/Home/search?inpSearch="+$('#inpSearch').val()
关于javascript - 使用 java 脚本在 MVC 中提供用户友好的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57586102/