呼叫一個 Action
在 MVC 中,有一些場景,你要為路由指定一個操作,無論是連結,表單操作還是重定向到操作。你可以通過 MVC 名稱空間指定操作。
給定控制器時,例如 HomeController
:
public class HomeController : Controller
{
public ActionResult Index()
{
...
}
public ActionResult MyAction()
{
...
}
public ActionResult MyActionWithParameter(int parameter)
{
...
}
}
T4MVC 將生成一個覆蓋該操作的繼承控制器。此覆蓋將正確設定路由資料,以便 MVC 的 UrlHelper
將生成正確的 Url。你可以呼叫此方法並將其傳遞給 UrlHelper
的各種方法。以下示例假設使用了預設的 MVC 路由:
連結
要使用指定的文字生成 a
標記:
@Html.ActionLink("Link Text", MVC.Home.Index() )
//result: <a href="/">Link Text</a>
@Html.ActionLink("Link Text", MVC.Home.MyAction() )
//result: <a href="/Home/MyAction">Link Text</a>
//T4MVC also allows you to specify the parameter without creating an anonymous object:
@Html.ActionLink("Link Text", MVC.Home.MyActionWithParameter(1) )
//result: <a href="/Home/MyActionWithParameter/1">Link Text</a>
要生成網址:
@Url.Action( MVC.Home.Index() )
//result: /
@Url.Action("Link Text", MVC.Home.MyAction() )
//result: /Home/MyAction
@Url.Action("Link Text", MVC.Home.MyActionWithParameter(1) )
//result: /Home/MyActionWithParameter/1
請注意,T4MVC 遵循與 MVC 路由相同的規則 - 它不會指定預設路由變數,因此 HomeController
上的 Index
操作不會生成/Home/Index
,而是/
的完全有效和縮寫形式。
表格方法
要使用指定的正確 action
生成 form
標記:
@Html.BeginForm( MVC.Home.Index(), FormMethod.Get /* or FormMethod.Post */ )
{
//my form
}
//result:
<form action="/" method="GET">
//my form
</form>
@Html.BeginForm( MVC.Home.MyActionWithParameter(1), FormMethod.Get /* or FormMethod.Post */ )
{
//my form
}
//result:
<form action="/Home/MyActionWithParameter/1" method="GET">
//my form
</form>
重定向到行動
在控制器中時,你可能希望從當前操作重定向到某個操作。這可以做到,喜歡:
public class RedirectingController : Controller
{
public ActionResult MyRedirectAction()
{
...
return RedirectToAction( MVC.Redirecting.ActionToRedirectTo() );
//redirects the user to the action below.
}
public ActionResult ActionToRedirectTo()
{
...
}
}