最簡單的方法是讓控制器名稱和動作名稱爲您的型號字符串。然後你可以使用actionlink的非強類型重載。事情是這樣的:
<%=Html.ActionLink(Model.Action, Model.Controller, new { param1 = 1, param2 = 2 })%>
而且使用這樣的:
<%Html.RenderPartial("PartialName", new PartialModel{Controller = "Person", Action = "Publications"})%>
如果要使用強類型的版本,你可以做這樣的事情:
//Model for your partial view
public class PartialModel<TController> where TController : Controller
{
public Func<int, int, Expression<Action<TController>>> GetLinkAction { get; set; }
}
//Render the action link in your partial
<%=Html.ActionLink(Model.GetLinkAction(1, 2))%>
//Render the partialview in any page
<%Html.RenderPartial("PartialName", new PartialModel<PersonController> { GetLinkAction = (param1, param2) => x => x.Publications(param1, param2) })%>
你會的當然必須根據你的參數進行調整。強類型方法的好處在於方法不必具有完全相同的簽名和參數名稱。
非常感謝:)非常感謝! – 2010-05-07 10:51:41