2011-04-22 21 views
1

我使用RenderAction包括下面的表格中我的觀點提出:多形式的RenderAction

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<SelectListItem>>" %> 
<% using (Html.BeginForm("form1", "UserControls", FormMethod.Post, new { @id = "form1" })) 
{ %> 
<div id="superDiv">Super User | Account: <%= Html.DropDownList("dropdown", Model)%> 
    <button type="submit" class="button">Button</button> 
</div> 
<% } %> 

的問題是,當我在一個視圖如形式:

<% using (Html.BeginForm("Reports", "Report", FormMethod.Post, new { @id = "reportForm", style= "display:none" })) 
    { %> 
    <%: Html.AntiForgeryToken()%> 

    <%: Html.Hidden("reportType", null, new { @id = "reportType" }) %> 
    <div class="middle"><button type="submit" class="button">Generate Report</button> 
<% } %> 

它會自動提交表格RenderAction,這怎麼能防止?

回答

1

也許你應該使用Partial代替RenderAction

我用它來處理兩種形式(含2提交-按鈕)1頁:

第一視圖

@using (Html.BeginForm("LogOn", "Account", FormMethod.Post)){...} 

第二視圖

@using (Html.BeginForm("Register", "Account", FormMethod.Post)) {...} 

第三主視圖:

<div style="..."> 
<div> 
    @Html.Partial("Login") 
</div> 
<div> 
    @Html.Partial("Register") 
</div> 

UPD:

我需要將數據加載到所述用戶控制,並使用它在多個視圖/控制器。這是如何與部分工作?

您可以創建Helper即會接受你的數據/ PARAMS和局部視圖來呈現

public static MvcHtmlString MyRegisterUserControl(this HtmlHelper html, SomeClass data) 
    { 
     //maybe some calculations here 
     return html.Partial("Register", data); 
    } 

那麼您可以在您的視圖使用它(類似的東西):

@Html.MyRegisterUserControl(new SomeClass(){...}); 
+0

我需要將數據加載到用戶控件中,並將其用於多個視圖/控件。這是如何與部分工作? – 2011-04-26 07:42:28