2013-12-09 67 views
0

我有一個我創建的剃刀接觸窗體,除了顯示「成功消息」之外,一切正常。我正在調用一個幫助器方法DisplayCompletionMessage()。我有一個標題和段落。當這個方法被調用時,消息被顯示,但它就像我在我正在的頁面中放置一個完整的新頁面。這就像我有兩個母版頁,即使該方法只顯示標題和段落。C#剃刀助手方法顯示頁面頁面

if (!isPostBack) 
{ 
    Session.Remove(ContactFormModel.SessionKey); 
    @RenderForm(formModel) 
} 
else 
{ 
    if (Session[ContactFormModel.SessionKey] != null) 
    { 
     @DisplayResubmissionError() 
     return; 
    } 

    formModel = new ContactFormModel(Request.Form); 
    var errors = formModel.Validate(); 

    if (errors.Count > 0) 
    { 
     @DisplayErrors(errors) 
     @RenderForm(formModel) 
    } 
    else 
    { 
     @DisplayCompletionMessage(formModel) 
     @SendContactEmail(formModel) 
    } 
} 

enter image description here

@helper DisplayCompletionMessage(ContactFormModel formModel) 
{ 
    <h3>Thank You</h3> 

    <p> 
     Thank you, @formModel.Name, your message has been successfully submitted! 
    </p> 
} 
+2

你能表現出一定的代碼請你最有可能你正在調用一個視圖,而不是局部視圖。 – RealityDysfunction

+0

@RealityDysfunction我添加了我用來調用幫助器方法的代碼,以及幫助器方法代碼。 – Eric

+1

這是你的視圖中的代碼嗎?!?!?! ... –

回答

0

如何使用TempData,以顯示您的郵件。

在你的控制器,可以設置到TempData發送電子郵件

.... //other code in your controller 
.... 
TempData["successMsg"] = "Thank you, " + User.Name + ", your message has been successfully submitted!"; 
.... 
.... 

後並在視圖中,檢查它是否到TempData不爲空,並顯示它

@if(TempData["successMsg"] != null) 
{ 
    <h3>Thank you</h3> 
    <p> 
     TempData["successMsg"].ToString() 
    </p> 
} 
+0

嗯,這工作,但現在我意識到助手方法不會導致頁面內的頁面。我刪除了與提交按鈕相關的所有代碼,並且我仍然在頁面中獲得重新加載和頁面。這可能是由於表單上的方法=「POST」? – Eric

+0

也許你的@SendContactEmail助手方法是罪魁禍首? – Bairose

相關問題