我正在尝试创建类似 *.ascxs' 工厂的东西。
场景:我想渲染依赖于模型的控件,我已将其传递给 partialView。我想实现这样的目标:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyAbstractModel>" %>
<%= Model.Property1 %>
<!-- other more sophisticated displays on model -->
<% Html.RenderAction("RenderControl", "Factory", new { model = Model}); %>
工厂控制器:
public ActionResult RenderControl(object model) {
if (model.GetType() == typeof(Model1) {
return RenderPartial("Partial2", model);
} else {
return RenderPartial("Partial1", model);
}
}
我想知道有没有更好的方法来应对这种情况。我想这不是在 ASP.MVC 2 中构建网页的最有效方法。
如果这种方法可以接受,我该如何限制对此类控制器的访问?我只想在服务器端使用这个类,并且只能通过 ascxs 的页面