Как перенаправить страницу из представления в контроллер в ASP.NET MVC 3? - PullRequest
1 голос
/ 10 июня 2011

Я использую mvc3 с Razor Engine, и у меня есть условие, что когда оно истинно, оно должно автоматически перенаправлять на другую страницу, отправляя объект в качестве параметра.Я хочу сделать следующее:

@ if (cond> 10) {

Url.Action ("Edit", product);// перенаправить в этой строке автоматически на действие Edit, отправив объект в качестве параметра}

Кто-нибудь знает, существует ли Html.Helper, который делает это для меня?Я имею в виду перенаправление на страницу, подобную этой: someHtmlHelper ("myAction", "myController", myObject).

Я попытался сделать это с помощью JavaScript и почти работает, я просто нахожу некоторые проблемы в параметре URL.Действие Url.Action возвращает код символа вместо символа для специальных символов.Вместо «&» вместо «&».

@ if (cond> 10) {var url = Url.Action ("Edit", product);

varUrl = '@url';location.href = Url;

<} </p>

Результат URL: http://localhost:4772/Product/Edit?ProductId=2234&Code=0020582&Name...

Я буду травмирован, если в MVC3 не будет реализовано перенаправление одной страницы.

Так что мне нужна помощь.Благодарю.

Ответы [ 2 ]

3 голосов
/ 11 июня 2011

Представление не подходит для такой логики.

В зависимости от вашего решения вы должны либо:

A) Проверить состояние в вашем контроллере, прежде чем возвращатьПросматривайте и перенаправляйте туда следующим образом:

if (cond >= 10) 
    return RedirectToAction("ADifferentResult");

B) Используйте частичные представления для условного RenderAction, например:

@{
    if (cond > 10) 
        Html.RenderAction("ADifferentResult");
    else
        Html.RenderAction("DefaultResult");
}
1 голос
/ 10 января 2012
@if (cond > 10){@Html.ActionLink("Edit", "Product", new { ProductId = 2234, Code = 0020582 })}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...