2009-12-22 43 views
0

我有一個列出我所有文章(Articles/List.aspx)的頁面。Asp.Net MVC - RenderPartial - 在列表視圖中創建

我也有一個創建文章(Article/Create.ascx)的控件。

我想我的List.aspx頁面呈現的Create.ascx能夠創建文章。

我知道在MVC中,首選的方法是通過操作一頁。但在這種情況下,我需要這樣做。這是一個設計問題,以及客戶希望網站如何工作。

所以現在,我得到了List.aspx下面的代碼:

<% Html.RenderPartial("Create", new Domain.Models.Article()); %> 

那正確呈現。但是當我點擊創建按鈕時,它不會進入我的ArticleController的Create [post]方法中。

任何想法爲什麼以及如何解決這個問題?

回答

1

如果你有按鈕的問題,它不會與你如何渲染用戶控件有關。我們需要查看按鈕所在的表單標記,以顯示問題最可能出現的情況。

但僅供參考,你可能希望做這樣的事情:

<% using (Html.BeginForm("Create", 
    ViewContext.RouteData.Values["Controller"].ToString())) { %> 

    your control markup here 

<% } %> 
+0

的問題是不是與按鈕,因爲如果我把我所有的代碼在一個標準的Create.aspx頁面(而不是的控制),它的工作。但是,您的權利,您的代碼就是我一直在尋找的。我很感謝你的快速和良好的答案! – Melursus

+0

@Melursus問題不在於最可能的按鈕,它是按鈕的形式。在一個控件中,您需要知道使用哪個控制器,這可能是也可能不是您期望的。這就是爲什麼我包含了ViewContext.RouteData.Values [「Controller」]。這是指從頁面內部構建用戶控件的控制器。這樣你就知道你得到了被調用的控制器。 – Joseph

+0

感謝您的澄清!這有助於我更好地理解! – Melursus