被拿起MVC4和剃刀,并具有一球,但我已经有了为方针的一个问题就是我想acheive:MVC4 - Razor - 动态模块内容?
我有一些面板在页面上(就像一个仪表盘),和您可以拖放这些面板以将模块“安装”到该面板中,并显示其内容。这是从一个UI点很棒,现在我在看这个挂钩最多的东西有点更耐人寻味:
我有什么:
- IContentModule
- 为每个模块设置具体类的用渲染()方法
- 控制器,处理模块丢弃事件和活化剂来获得类的实例为降模块
真的很简单,理想情况下,我希望每个模块都负责它自己的内容,但除了从Render返回字符串之外,还有更好的方法,比如为特定的具体类指定特定的视图标记,这样我就可以控制所呈现的内容,但是以更加结构化的方式,想知道最好的方法是什么?
谢谢你的时间!
丹尼
编辑:思八九不离十,如果有一种方法来对夫妇为了我的具体类?例如ViewForum.cshtml绑定到ForumModule.cs,以某种方式实例化视图并从它的对象呈现中获取一个字符串,然后通过字符串将其传回给我的面板?
一个面板的一个例子:
<section class="main box droppable" id="MainPanel">
<div class="padding">
Panel 1
</div>
</section>
jQuery的事件
$(".droppable").droppable({
hoverClass: 'boxhover',
drop: function (event, ui) {
$.ajax({
type: "POST",
url: '/Home/AddModule/' + $(ui.draggable).attr("id") + "?returnTo=" + this.id,
success: function(data) {
$("#" + data.Target).html(data.Content);
}
});
}
});
控制器方法
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult AddModule(string id, string returnTo)
{
string content = DemoResolve(id);
try
{
IContentModule module = (IContentModule) Activator.CreateInstance(Type.GetType("Foo.Bar.BLLForumModule,Foo.Bar"));
content = module.Render();
}catch(Exception exp)
{
throw;
}
return Json(new { Target = returnTo, Content = content });
}
所以其中i有module.Render(),我我想我想要得到一个局部视图或东西,并根据我手中的对象进行渲染
你可以发布一些代码来显示你正在尝试做什么?很难从你所描述的内容中获得确切的图片 – levelnis 2013-02-11 09:04:39
在任何人说出来之前,我知道这是一个多余的捕获,我稍后会正确地写出它:P ...激活器将被连接到模块的ID理想地传回,可能我会使用枚举从字符串中取回类型:) – 2013-02-11 09:16:24