被拿起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