我想验证 url 中的 Id 值是否为空。
../Task/EditEmployee/afccb22a-7cfd-4be5-8f82-9bd353c13b16
如果 ID 为空,我希望这样
../Task/EditEmployee/
然后将用户重定向到某个页面。
public ActionResult EditEmployee(Guid Id)
{
//Some code in here
}
最佳答案
这可能不是最好的解决方案,但您可以将 id 参数作为字符串并尝试像这样解析它:
public ActionResult EditEmployee(string id)
{
if(string.IsNullOrWhiteSpace(id))
{
// handle empty querystring
}
else
{
Guid guid;
if (Guid.TryParse(id, out guid))
{
//Some code in here
}
}
}
或者
您还可以在路线上创建正则表达式约束,但这可能太复杂且难以理解。在默认路线之前映射此路线。
routes.MapRoute(
"TastEditEmployee",
"Task/EditEmployee/{id}",
new { controller = "Task", action = "EditEmployee" },
new { id = @"^(\{{0,1}([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}\}{0,1})$" }
);
然后您可以使用 id 参数作为 Nullable Guid。
public ActionResult EditEmployee(Guid? id)
{
//do something
}
关于asp.net-mvc-3 - 如何验证 asp.net mvc3 中的空查询字符串参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11048558/