我有一個View顯示項目列表。我想在用戶選擇一個「編輯」時顯示現有項目,或者當用戶單擊「創建」時顯示新項目。這個「單個項目」窗口將在許多不同的地方被調用,所以我想將功能「編輯」和「創建」合併到一個視圖中,這並不是太糟糕。我明白我可以通過在調用者的同一級別上創建一個視圖頁面來實現這一點,並且當用戶在該項目窗口上單擊「提交」時,項目控制器完成其工作,然後重定向回到調用者頁面(項目列表或其他呼叫者)。但我想嘗試另一種方法,即將此Item窗口作爲彈出窗口,當用戶點擊「show modal」按鈕時,調用者頁面對控制器進行ajax調用,將項目的數據(或其id)傳遞爲參數,並且控制器動態生成MvcHtmlString,返回給調用者,調用者使用收到的MvcHtmlString顯示彈出窗口。一切似乎工作,但在我的控制器中的大量html代碼看起來很混亂。MVC使用HtmlHelper方法LaberFor(),EditorFor()in controller
所以我不知道如何使用的HtmlHelper產生MvcHtmlString在控制器,例如,我有一個對象類型「項」,我該怎麼辦之類的東西Html.LabelFor(item => item.Name)
,或Html.EditorFor(item => item.Name)
在控制器並獲得MvcHtmlString?
爲什麼控制器創建html?你能不能創建一個局部視圖(在View文件夾中定義)並讓你的控制器返回局部視圖? – Sparrow
如果你想用你的html做非凡的事情,可以考慮使用部分視圖或顯示模板。 –
請參閱[此問題](http://stackoverflow.com/q/26362910/215552)及其有關在視圖之外構建HTML的信息的答案。 –