C# mvc行动方法没有';不识别参数
我正在尝试使用确认电子邮件设置会员资格提供商<代码>用户已使用memb成功注册。提供者 注册后,将发送一封带有C# mvc行动方法没有';不识别参数,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我正在尝试使用确认电子邮件设置会员资格提供商用户已使用memb成功注册。提供者 注册后,将发送一封带有userProviderKey的确认电子邮件,用于批准用户。链接发送如下 http://localhost:48992/Account/Verify/e37df60d-b436-4b19-ac73-4343272e10e8 用户必须单击随键发送的链接(providerUserKey),问题是该键在调试模式下甚至不会显示为参数 // in debug providerUserKey is nul
userProviderKey
的确认电子邮件,用于批准用户。链接发送如下
http://localhost:48992/Account/Verify/e37df60d-b436-4b19-ac73-4343272e10e8
用户必须单击随键发送的链接(providerUserKey),问题是该键在调试模式下甚至不会显示为参数
// in debug providerUserKey is null
public ActionResult Verify(string providerUserKey)
{
}
有什么问题吗?除非您在全局asax中指定了规则,否则您的url应该是这样的
http://localhost:48992/Account/Verify?providerUserKey=e37df60d-b436-4b19-ac73-4343272e10e8
如果要使用上述格式,需要在global.asax中映射新路线
routes.MapRoute(
// Route name
"routename",
// Url with parameters
"Account/Verify/{providerUserKey}/",
// Parameter defaults
new { controller = "Account", action = "Verify" }
);
除非您在全局asax中指定了规则,否则您的url应该如下所示
http://localhost:48992/Account/Verify?providerUserKey=e37df60d-b436-4b19-ac73-4343272e10e8
如果要使用上述格式,需要在global.asax中映射新路线
routes.MapRoute(
// Route name
"routename",
// Url with parameters
"Account/Verify/{providerUserKey}/",
// Parameter defaults
new { controller = "Account", action = "Verify" }
);
尝试将查询更改为
http://localhost:48992/Account/Verify?providerUserKey=e37df60d-b436-4b19-ac73-4343272e10e8
您的
ActionResult
正在URL
中查找此参数,请尝试将查询更改为
http://localhost:48992/Account/Verify?providerUserKey=e37df60d-b436-4b19-ac73-4343272e10e8
您的
ActionResult
正在URL
中查找此参数默认的MVC路由为{Controller}/{Action}/{Id}
因此,如果参数名为Id,则可以识别它
将其更改为following,它将工作
public ActionResult Verify(string id)
{
}
但是,如果您不想更改参数名称,那么可以在global.asax文件中添加以下路由,它将正常工作
routes.MapRoute("MyRouteName","{Controller}/{action}/{providerUserKey}")
如果需要,还可以将默认值传递给它,因为路径是预定义的。
Cheers默认的MVC路由是{Controller}/{Action}/{Id} 因此,如果参数名为Id,则可以识别它 将其更改为following,它将工作
public ActionResult Verify(string id)
{
}
但是,如果您不想更改参数名称,那么可以在global.asax文件中添加以下路由,它将正常工作
routes.MapRoute("MyRouteName","{Controller}/{action}/{providerUserKey}")
如果需要,还可以将默认值传递给它,因为路径是预定义的。
如果您将Global.asax.cs文件的路由配置设置为:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional });
您可以看到它有id
参数作为可选参数。因此,如果查询字符串被识别为id
,那么它将具有您传递的值
将id
更改为providerUserKey
,以便为您执行此任务
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{providerUserKey}", // URL with parameters
new { controller = "Home", action = "Index",providerUserKey=UrlParameter.Optional });
或者将默认可选参数保留为id
,并将providerUserKey
作为附加的querystring参数传递
这样说:
@Html.Action("","",new { providerUserKey="e37df60d-b436-" })
如果您将Global.asax.cs文件的路由配置设置为:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional });
您可以看到它有id
参数作为可选参数。因此,如果查询字符串被识别为id
,那么它将具有您传递的值
将id
更改为providerUserKey
,以便为您执行此任务
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{providerUserKey}", // URL with parameters
new { controller = "Home", action = "Index",providerUserKey=UrlParameter.Optional });
或者将默认可选参数保留为id
,并将providerUserKey
作为附加的querystring参数传递
这样说:
@Html.Action("","",new { providerUserKey="e37df60d-b436-" })
希望它有帮助查询中的轻微错误,否/在验证后查询中的轻微错误,否/在验证后感谢认为这是一个post请求感谢认为这是一个post请求