在ASP.Net MVC3的Razor视图中将值传递给HREF

Soc*_*cus 4 asp.net-mvc razor asp.net-mvc-3

   <a href="@(Html.MyActionHref(controllerName: "MyController", actionName: "MyAction"))">
Run Code Online (Sandbox Code Playgroud)

上面的行为Razor视图生成一个超链接.html帮助器方法MyActionHref()创建链接.单击链接时,它会从控制器调用操作方法.现在假设此链接调用的动作控制器方法是参数化的
public ActionResult MyAction(string myParams){}
(即,html辅助方法MyActionHref()甚至被重载以相应地接受三个参数.)

如何从模型中将此附加参数传递给控制器​​操作方法?
说,

<a href="@(Html.MyActionHref(controllerName: "MyController", actionName: "MyAction",params: new {....} }))">  
Run Code Online (Sandbox Code Playgroud)

有什么建议?

Dar*_*rov 20

你可以简单地为什么使用这样的助手:

@Html.ActionLink(
    "some text", 
    "MyAction", 
    "MyController", 
    new { myParams = "Hello" }, 
    null
)
Run Code Online (Sandbox Code Playgroud)

这将生成适当的锚标记:

 <a href="/MyController/MyAction?myParams=Hello">some text</a>
Run Code Online (Sandbox Code Playgroud)


Mik*_*erg 7

您可以使用该Url.Action方法,也可以复制其行为.

@Url.Action(
   controllerName: "MyController", 
   actionName: "MyAction", 
   routeValues: new { id = 1 }
);
Run Code Online (Sandbox Code Playgroud)

看看该方法的签名,找到你想要做的事情.