2012-02-17 152 views
0

我有以下UserController的方法:奇怪MVC RedirectToAction的行爲

public ActionResult DeleteThread(int RootMessageID) 
{ 
    _repository.DeleteMessageThread(RootMessageID); 
    return RedirectToAction("ActionMessageSuccess", new { txt = "Message was sent successfully" }); 
} 
    public ActionResult ActionMessageSuccess(string txt) 
    { 
     return View(txt); 
    } 

有CSHTML頁面(在瀏覽\用戶):

@model System.String 
@{ 
    ViewBag.Title = "SendMessageSuccess"; 
    Layout = "~/Views/Shared/_LayoutUser.cshtml"; 
} 

<h2>@Model</h2> 

但我得到:

The view 'Message was sent successfully' or its master was not found or no view engine supports the searched locations. The following locations were searched: 
~/Views/User/Message was sent successfully.aspx 
~/Views/User/Message was sent successfully.ascx 
~/Views/Shared/Message was sent successfully.aspx 
~/Views/Shared/Message was sent successfully.ascx 
~/Views/User/Message was sent successfully.cshtml 
~/Views/User/Message was sent successfully.vbhtml 
~/Views/Shared/Message was sent successfully.cshtml 
~/Views/Shared/Message was sent successfully.vbhtml 

之後調用DeleteThread。爲什麼?

回答

1

redirectToAction沒有問題。

要調用RedirectToAction("ActionMessageSuccess", new { txt = "Message was sent successfully" });

所以重定向到行動ActionMessageSuccess與TXT值。

隨着ActionMessageSuccess您正在使用的名字TXT即返回視圖「消息發送成功」,但無法將文件與名稱的視圖系統「消息發送成功」。

+0

沒有什麼明白。我看到,我傳遞了actionName =「ActionMessageSuccess」和routeValues =「new {txt =」消息已成功發送「}」。所以,方法ActionMessageSuccess應該用參數txt =「消息發送成功」來調用。我錯在哪裏? – John 2012-02-17 15:34:50

+0

哦,我發現問題了。謝謝! – John 2012-02-17 15:41:21