HTML.ActionLink方法
假设我有一堂课
public class ItemController:Controller{
public ActionResult Login(int id)
{
return View("Hi", id);
}
}
在不位于项目文件夹ItemController
所在的页面上,我想创建该Login
方法的链接。那么Html.ActionLink
我应该使用哪种方法以及应该传递什么参数呢?
具体来说,我正在寻找方法的替代品
Html.ActionLink(article.Title, new { controller = "Articles", action = "Details",
id = article.ArticleID })
在最近的ASP.NET MVC版本中已停用。
回答:
我认为您想要的是:
回答:
Html.ActionLink(article.Title, "Login", // <-- Controller Name.
"Item", // <-- ActionMethod
new { id = article.ArticleID }, // <-- Route arguments.
null // <-- htmlArguments .. which are none. You need this value
// otherwise you call the WRONG method ...
// (refer to comments, below).
)
这使用以下方法ActionLink签名:
public static string ActionLink(this HtmlHelper htmlHelper, string linkText,
string controllerName,
string actionName,
object values,
object htmlAttributes)
回答:
两个论点已经改变
Html.ActionLink(article.Title, "Item", // <-- ActionMethod
"Login", // <-- Controller Name.
new { id = article.ArticleID }, // <-- Route arguments.
null // <-- htmlArguments .. which are none. You need this value
// otherwise you call the WRONG method ...
// (refer to comments, below).
)
这使用以下方法ActionLink签名:
public static string ActionLink(this HtmlHelper htmlHelper, string linkText,
string actionName,
string controllerName,
object values,
object htmlAttributes)
回答:
参数与MVC2的顺序相同,但是不再需要id值:
Html.ActionLink(article.Title, "Item", // <-- ActionMethod
"Login", // <-- Controller Name.
new { article.ArticleID }, // <-- Route arguments.
null // <-- htmlArguments .. which are none. You need this value
// otherwise you call the WRONG method ...
// (refer to comments, below).
)
这样可以避免将任何路由逻辑硬编码到链接中。
<a href="/Item/Login/5">Title</a>
假定以下内容,这将为您提供以下html输出:
article.Title = "Title"
article.ArticleID = 5
- 您仍然定义了以下路线
。。
routes.MapRoute( "Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
以上是 HTML.ActionLink方法 的全部内容, 来源链接: utcz.com/qa/430198.html