Asp.net mvc 2 控制器作为ascx工厂-坏主意?
我正在尝试创建类似于*.ascxs'工厂的东西 情景: 我想呈现依赖于模型的控件,我已经将其传递给partialView。 我想实现这样的目标:Asp.net mvc 2 控制器作为ascx工厂-坏主意?,asp.net-mvc-2,factory-pattern,renderaction,Asp.net Mvc 2,Factory Pattern,Renderaction,我正在尝试创建类似于*.ascxs'工厂的东西 情景: 我想呈现依赖于模型的控件,我已经将其传递给partialView。 我想实现这样的目标: <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyAbstractModel>" %> <%= Model.Property1 %> <!-- other more sophisticated displa
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyAbstractModel>" %>
<%= Model.Property1 %>
<!-- other more sophisticated displays on model -->
<% Html.RenderAction("RenderControl", "Factory", new { model = Model}); %>
我想知道有没有更好的办法来应付这种情况。我认为在ASP.MVC2中构建网页不是最有效的方法
如果此方法可接受,我如何限制对此类控制器的访问?我只想在服务器端和ascxs的页面上使用此类使用
ChildActionOnly()
属性来限制对操作的访问
您尝试执行的操作已经内置到MVC:Html.DisplayFor()
见:
public ActionResult RenderControl(object model) {
if (model.GetType() == typeof(Model1) {
return RenderPartial("Partial2", model);
} else {
return RenderPartial("Partial1", model);
}
}