我正在努力通过向其传递参数来将View中的操作调用到另一个View actioncontroller。
这是来自View的调用(我在索引View中并调用Account控制器):
@Html.ActionLink("parameters", "MyParameters", "Account", new { email = "test" })
我的运行时编译器说“无法解决操作MyParameters”它有什么问题?
这是我的帐户管理员的功能:
public ActionResult MyParameters(string email) {}
这是我的路线:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Paramètres par défaut
);
}
干杯
答案 0 :(得分:4)
尝试:
@Html.ActionLink("parameters", "MyParameters", "Account", null, new { email = "test" })
重载是:
@Html.ActionLink("linkText", "actionName", "controller", object routeValues, object HtmlAttributes)
routeValues
用于在链接上添加查询字符串。例如,如果您想在链接中添加id = 1,您的操作链接将如下所示:
@Html.ActionLink("parameters", "MyParameters", "Account", new { @id = 1 }, new { email = "test" })
这会产生以下结果:
<a href="Account/MyParameters?id=1" email="test">parameters</a>
如果您想将电子邮件作为查询字符串,则需要执行此操作:
@Html.ActionLink("parameters", "MyParameters", "Account", new { @id = 1, @email = "test" }, null)
这会产生:
<a href="Account/MyParameters?id=1&email=test">parameters</a>
答案 1 :(得分:0)
没有ActionLink
重载需要3个字符串和一个对象。 http://msdn.microsoft.com/en-us/library/dd505040
代码可能试图将"Account"
解释为routeValues,将您的参数解释为htmlAttributes。我猜你是否看看实际输出的链接,你会发现它看起来不像你期望的那样。
答案 2 :(得分:0)
尝试:
@ Html.ActionLink(“Controller”,“Action”,new {email =“test”, parameters =“parameters”})
你的控制器:
public ActionResult MyParameters(string email,string parameters){}