2016-12-15 5 views
1

Я работаю над этим проектом, который в настоящее время имеет метод последующей:ASP.NET MVC сообщение в контроллер действия от одного контроллера

[HttpPost] 
public ActionResult Service(string identifier) 

Эта функция в настоящее время используется в виде веб-страницы

<form method="POST" action="/Connector/Service"> 
<input type="hidden" id="identifier" name="identifier" value="@TempData["Identifier"]"/> 

Таким образом, служба используется, когда пользователь нажимает кнопку, которая отправляет форму на веб-странице. Пользователь переходит на эту страницу из другого действия. Я должен реализовать функцию, где иногда вместо того, чтобы вводить пользователя на веб-страницу, пользователь переходит непосредственно к методу службы из действия.

Я нашел эту нить при поиске: ASP.NET MVC: RedirectToAction with parameters to POST Action

Но, похоже, что это плохой дизайн и возвращение RedirectToAction с обслуживанием на самом деле не работает для меня.

return RedirectToAction("Service", new {identifier}) 

При следующем поиске кажется, что я действительно не могу сделать запрос на отправку с моего контроллера. Asp.NET MVC : redirect to another controller with POST Action

Любые идеи о том, что я могу здесь сделать? Я довольно новичок в ASP.NET и понятия не имею, что делать на данный момент. Спасибо всем, спасибо.

+0

Я согласен, что это плохой дизайн. '", где иногда вместо того, чтобы вводить пользователя на веб-страницу "' - Что такое ** иногда **? Это недостающий фрагмент здесь –

+1

способ перенаправления на действие отправляет запрос GET. Но ваш метод отмечен как POST только – Steve

+1

http://stackoverflow.com/questions/129335/how-do-you-redirect-to-a-page-using-the-post-verb, вы должны прочитать принятый ответ и посмотреть как @Jasonbunting делает – ergen

ответ

1

Так получается, что я мог бы просто вызвать функцию непосредственно, делая

Service(identifier) 

я продолжал думать, что я должен был использовать RedirectToAction так, что даже не приходила мне в голову.

Thanks Sherlock для ответа!

0

Тег [сообщение] используется только тогда, когда форма занесена самой точки зрения, если страница перенаправления на функцию Controler с другой точкой зрения, чем один ваш, вы есть два параметра:

  1. Используйте тег [get], возможно, вам больше повезет с этим тегом, хотя я точно не знаю, как он работает (это может быть отредактировано)

  2. Используйте функцию без тегов с параметрами, если вы rediret от другой вид функции с параметром, например public ActionResult Service(string identifier), который не имеет тега, вы автоматически достигнете этой функции.

    Если параметр не указан, он просто будет NULL.

+0

За # 2, если я заберу в теге Post будет отображаться представление? –

+0

@SWWilliams Нет, если вы удалите POST, вы не сможете отправлять данные, если вы не измените метод формы на GET. GET используется для извлечения удаленных данных, в то время как POST используется для вставки/обновления удаленных данных. – mluker

+0

Можно ли позволить функции обрабатывать запросы POST и GET? –

Смежные вопросы