mvc3 RedirectToAction - PullRequest
       3

mvc3 RedirectToAction

2 голосов
/ 29 июня 2011

Почему это не работает.Он говорит мне, что редактирование требует EditStudyModel, когда я перенаправляю в свой метод Create.Редирект должен делать get, верно?

    public ViewResult Create()
    {
        var createStudyModel = new CreateStudyModel();
        return View(createStudyModel);
    }

    [HttpPost]
    public ActionResult Create(CreateStudyModel createStudyModel)
    {
        try
        {
            //TODO: Send CreateStudyCommand
            return RedirectToAction("Edit", new { scientificStudyId = new Guid("{1C965285-788A-4B67-9894-3D0D46949F11}") });
        }
        catch
        {
            return View(createStudyModel);
        }
    }

    [GET("ScientificStudy/Create/{scientificStudyId}")]
    public ActionResult Edit(Guid scientificStudyId)
    {
        //TODO: Query real model
        var model = new EditStudyModel() {StudyNr = "T01", StudyName = "Test"};
        return View(model);
    }

    [HttpPost]
    public ActionResult Edit(EditStudyModel editStudyModel)
    {
        try
        {
            //TODO: Send UpdateStudyCommand
            return RedirectToAction(""); //TODO: Terug naar Studie lijst
        }
        catch
        {
            return View(editStudyModel);
        }
    }

Ответы [ 2 ]

1 голос
/ 29 июня 2011

Вы возвращаете перенаправление с URL-адресом в виде строки, контроллер не может проанализировать GUID и преобразовать его обратно в объект guid, поэтому он не может определить правильную сигнатуру метода для использования.Измените его на:

return RedirectToAction("Edit", new { scientificStudyId = "{1C965285-788A-4B67-9894-3D0D46949F11}" });

и

public ActionResult Edit(string scientificStudyId)
0 голосов
/ 16 июля 2011

Я нашел проблему.Я копирую и вставляю свой create.cshtml в edit.cshtml. Забыл изменить первую строку: @model Website.Models.CreateStudyModel -> на -> @model Website.Models.EditStudyModel

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