c# - MVC:AJAX 处的锚标记查询字符串不被控制器拾取
问题描述
我是 MVC 的新手,我来自 ASP Classic 背景。table
我有以下edit button
内容Datatable
:
当我单击edit button
我希望将它们各自的查询字符串传递AutoINC
给Controller
并加载PasswordDet
页面时。
编辑按钮的 Javascript AJAX 部分代码
"columns": [
{ "data": "LoginID", "orderable" : true },
{ "data": "Name", "orderable": true },
{ "data": "DateCreated", "orderable": true },
{
"orderable":false,
"render": function (data, type, full, meta) {
return '<a href="/Password/PasswordDet/' + full.AutoINC + '"><img src="../../Content/myPics/edit-2-24.png" ></a>';
}
},
],
控制器
我已经尝试了以下with
并without
命名查询字符串
不命名查询字符串
public ActionResult PasswordDet(string AutoINC)
{
//**** AutoINC is always NULL****
return View();
}
使用命名查询字符串
public ActionResult PasswordDet()
{
string AutoINC = Request.QueryString["AutoINC"];
//**** AutoINC is always NULL****
return View();
}
此外,我有一个不传递任何查询字符串的新按钮,我该如何处理 NULL
"buttons": [
{
text: 'New',
className: "btn btn-default",
action: function (e, dt, node, config) {
window.location.href = '@Url.Action("PasswordDet", "Password")';
},
}
],
解决方案
我假设您的默认路线如下所示:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional} // Parameter defaults
);
因此,使您的PasswordDet
操作方法如下:
public ActionResult PasswordDet(int id)
{
// do whatever you want to with id here
return View();
}
现在localhost:50118/Password/PasswordDet/550
肯定会映射到上面具有id
value的 action 方法550
。
推荐阅读
- javascript - JS:是否可以使变量的一部分依赖于函数的参数?
- python - 如何计算岭回归模型的 RMSE
- web - 在主机名之后立即配置 GET 参数
- sapui5 - 使用 SAPUI5 重置过滤器参数不起作用
- python - python selenium - 更改 Excel Online 表中的单元格值
- c - 节目说明
- gnu-make - 生成 GNU Makefile 规则
- python-3.x - ImportError:无法在 flask_oauthlib 中导入名称“bytes_type”
- html - 我可以仅使用 CSS 隐藏没有某些特定数据值或内容的元素吗?
- css - xaringan / 备注中列之间的“短”垂直边框