Как я могу вернуть ActionResult? - PullRequest
0 голосов
/ 30 декабря 2011

У меня есть ActionResult, который возвращает представление с сеткой, в которой отображаются заметки из базы данных. На той же странице есть кнопка для вызова CreateNote, которая возвращает PartialView, где я могу добавлять новые заметки. Это все работает, но после добавления новой заметки я хочу, чтобы представление вернулось к закладкам, отображающим сетку. Я пытался использовать

return Redirect(HttpContext.Request.UrlReferrer.AbsoluteUri);

но это идет не на ту страницу. Поэтому вместо этого я хочу вернуть TabNotes ActionResult. Возможно ли это?

  public ActionResult CreateNote(
        [ModelBinder(typeof(Models.JsonModelBinder))]
        NoteModel Model, string cmd, long? itemId, string modelEntity)
    {

        if (cmd == "Save")
        {
            Model.meta.message = "Note saved";
            //standard user = 1, needs to be changed to variable
            test.Database.User User = UserRepository.GetUser(1);
            Entity entity = NotesRepository.GetEntity("Phrase");
            NotesRepository.StoreNote(Model.subject, Model.text, User, entity, itemId);
            return Redirect(HttpContext.Request.UrlReferrer.AbsoluteUri);
        }
        Model.meta.modelname = "CreateNote";
        Model.meta.JsViewModelType = "EditNoteModel";
        Model.meta.PostAction = Url.Action("CreateNote", new { cmd = "Save", itemId = itemId});


        return PartialView("CreateNotePartial",Model);

        }

'

    public ActionResult TabNotes([ModelBinder(typeof(Models.JsonModelBinder))]
        TabNotesModel Model, string cmd)
    {
        Entity entity = NotesRepository.GetEntity(Model.meta.entity);
        if (Model.meta.id.HasValue)
        {
            Model.meta.modelname = "TN" + Model.meta.entity + Model.meta.id.Value.ToString();

            Dictionary<string, object> defaultValues = new Dictionary<string, object>();
            defaultValues.Add("Entity", entity.EntityId);
            defaultValues.Add("ItemId", Model.meta.id.Value);
            Entity noteEntity = NotesRepository.GetEntity("Note");
            var grid = UI.GetEntityFlexiGrid(noteEntity, true, true, true, true, defaultValues);
            grid.buttons.Clear();
            grid.title = "";
            Model.Grid = grid;

            Model.Grid.url = Url.Action("TabNoteData", new { id = Model.meta.entity, itemId = Model.meta.id.Value});
        }


       return View("TabNotes", Model);
    }

1 Ответ

4 голосов
/ 30 декабря 2011

Вы должны перенаправить на действие:

return RedirectToAction("TabNotes");
...