Метод GET и POST в одном просмотре - PullRequest
0 голосов
/ 28 июня 2019

Интересно, возможно ли иметь метод GET и POST в одном представлении / форме или они должны быть разделены на два представления? Кроме того, я могу иметь две модели (IEnumerable, Generic, ...) в одном представлении?

Контроллер

public class MyController : Controller
   {

     public ActionResult GetView()
      {
          return View();
      }


        [HttpGet]
        public ActionResult PostView()
        {

            return View();
        }


        [HttpPost]
        public ActionResult PostView()
        {
                        return View();
        }
    }

View

@model IEnumerable<AppName.Models.OneClass>
@using AppName.Models


@using (Html.BeginForm("GetView", "MyController", FormMethod.Get))
{some code}

@using (Html.BeginForm("PostView", "MyController", FormMethod.Post))
{some code}

Возможно ли это?

1 Ответ

0 голосов
/ 28 июня 2019

Вы можете иметь несколько форм в одном представлении, да.

Отдельные модели, вы можете сделать это тоже.

Представьте, что у вас есть Model1 и Model2, и вы хотите использовать их для каждойдругая форма.

Вы создаете третью модель-обертку Model3, в которой Model1 и 2 становятся, например, простыми свойствами, а затем используете каждый из них для своей собственной формы / частичного представления.

Ваша модель будет выглядетьнапример:

public class WrapperModel {
    public Form1Model model1 { get; set; }
    public Form2Model model2 { get; set; }
}

, тогда ваша форма 1 использует WrapperModel.model1, а другая использует вторую модель.Это довольно часто, когда у вас есть подобные сценарии.

Вы можете использовать некоторые частичные представления для ваших форм, например, и указать разные модели в каждом из них.Это по крайней мере позволило бы некоторое разделение между ними.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...