2015-10-09 96 views
0

你好,MVC Web窗體控件和活動

我知道剃刀是從WebForms的不同,但我不想太混了很多。

我用Masterpages創建ASP.NET MVC WebForms包括Pages和UserControls。它工作正常,但我想知道如何處理MVC Webforms中的點擊事件?

Codebehind文件仍然存在,例如default.aspx.cs,如果我可以雙擊按鈕然後它創建點擊事件,但不工作。

我們可以在MVC中使用asp.net組件嗎? Code Behind文件怎麼樣?

(實施例控制的:asp:標籤,ASP:文本框,ASP:超鏈接等)

謝謝,

UPDATE

這是示例代碼(contact.aspx):

<div class="contact_text"> 
      <asp:Label ID="lbl_namesurname" runat="server" Text="<%$ Resources:contact, lbl_namesurname.Text%>"></asp:Label> 
     </div> 
     <div class="txt_namesurname"> 
      <asp:TextBox ID="txt_namesurname" runat="server" ValidationGroup="contact"></asp:TextBox> 
</div> 
<div><asp:Button ID="btn_send" runat="server" CssClass="btn_send" Text="<%$ Resources:contact, btn_send.ToolTip%>" ToolTip="<%$ Resources:contact, btn_send.ToolTip%>" OnClick="btn_send_Click" ValidationGroup="contact"/></div> 

contact.aspx.cs文件:

public partial class contact : ViewPage 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 
    protected void btn_send_Click(object sender, EventArgs e) 
    { 
     //old code-behind is not working in mvc 
    } 
} 

}

+1

你能否提供一些代碼和你的問題? –

+1

MVC WebForms不存在,MVC沒有UserControls。我猜你正在使用WebForms,但我無法確定。在提出問題時,儘量讓自己的名字筆直。 –

+0

好吧,據我瞭解,拖放控件也不適用於mvc webforms。我會刪除它們。 – Cagatay

回答

3

有作爲MVC Web窗體沒有這樣的事情。有ASP.NET MVC和ASP.NET Web窗體。不同的技術,你不能混合它們(儘管它們可以坐在一起)。

MVC沒有與Web窗體相同的生命週期,因此您不能在代碼後面或用戶控件中。 MVC必須以不同的方式思考:請求被路由到控制器。控制器檢查請求,根據需要調用數據檢索層,選擇視圖並將所有必要數據傳遞給該視圖,該視圖呈現爲HTML併發送給客戶端。除非您使用AJAX或類似技術,否則隨後的通信會經歷相同的過程。

所以,想想那個按鈕會做什麼。它應該發送電子郵件嗎?那麼它應該是一個表單提交。是否應該收集更多的數據並在已經加載的頁面上更新DOM?那麼AJAX可能更合適。

+0

是的,我想發一封電子郵件,但我沒有發現。我創建了Model,我在它的控制器中創建了Action。我差不多完成了,但是如何在webforms的aspx文件中添加控件?我想我會使用<%使用(Ajax.BeginForm)的東西? – Cagatay

+0

@Cagatay你不能在Web窗體中使用MVC Helpers,並且你不能在MVC中使用用戶控件。如果您想從MVC發送電子郵件,那麼您需要一個收集電子郵件詳細信息的視圖,該視圖應該有一個表單。它應該發送到發送電子郵件的MVC操作方法。去嘗試寫你自己的。如果你陷入困境,做一些研究。如果你真的陷入困境,*然後*提​​出一個新問題。 – mason