2012-02-17 3 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 страницы (в Views \ User):

@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 i.e. «Сообщение отправлено успешно», но система не может отправить файл с именем «Сообщение отправлено успешно».

+0

ничего не понимаю. Я вижу, что передаю actionName = "ActionMessageSuccess" и routeValues ​​= "new {txt =" Сообщение отправлено успешно "}". Итак, метод ActionMessageSuccess должен вызываться с параметром txt = «Сообщение отправлено успешно». Где я ошибаюсь? – John

+0

О, я нашел проблему. Спасибо! – John