asp.net-mvc-3 - 如何验证 asp.net mvc3 中的空查询字符串参数

标签 asp.net-mvc-3

我想验证 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/

相关文章:

c# - 如何结合按钮中的脚本和 Action

c# - 在 ASP.NET MVC 3 中使用 View 模型

asp.net-mvc - MVC 编辑器/显示模板的官方 "How to"?

c# - ASP.Net MVC 3,使用ViewModel,错误ViewModel不是IEnumerable

asp.net - 对于 .NET 人员来说,Ruby on Rails 与 ASP.NET MVC 3 比较?

asp.net-mvc-3 - 是否有适用于 ASP.NET MVC 的响应式模板 3/4

asp.net-mvc-3 - EF 4.1 Code-First 项目上的 MvcMiniProfiler 不分析 SQL

regex - 制作正则表达式以精确匹配两个字符串单词

asp.net-mvc - KendoUI Grid 绑定(bind)远程数据以显示

asp.net-mvc-3 - 在 ASP.Net MVC3 项目中使用 jquery datepicker