我需要开始处理一个包含emailand GUID的URL。有些事情喜欢跟随第一个参数是电子邮件地址,第二个参数是Guid。查询字符串参数错误
为此,我已经修改了我的路由如下
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"RouteABC", // Route name
"{controller}/{action}/{mail}/{id}", // URL with parameters
new { controller = "Account", action = "MyActionMethod", mail = string.Empty, id = Guid.Empty } // Parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
然后,我有我的操作方法如下图所示。
public class AccountController : Controller
{
public ActionResult MyActionMethod(string email, Guid id)
{
............
}
问题是,当我走在上面的URL,http://www.myWebSiteurladdress.com/Account/[email protected]?MyId=222DF915-264E-4034-BF26-22EB1165667C我得到以下错误。任何想法我可能在这里做错了吗?
参数字典包含参数 'MYID' 非空类型的 '的System.Guid' 的方法 “System.Web.Mvc.ActionResult MyActionMethod(System.String, 的System.Guid空条目)'在'SmartChartsMVC.Controllers.AccountController'中。一个 可选参数必须是一个引用类型,一个可为空的类型,或者是作为可选参数声明的 。参数名称:参数
像往常一样,你是男人:) – 2012-01-09 20:45:26