开发者

gets called from separate controller (ASP.NET MVC3)

I'm trying to call an action in a separate controller with an actionlink.

The problem is that both the [HttpGet] and the [HttpPost] action gets called, and since the post-method returns the view from which the action is called, nothing gets displayed.

Get method:

[HttpGet]
        public ActionResult View(int id, int index)
        {
            var form = formService.GetForm(id);
            var pageModel = new PageViewModel();

            var page = form.Page开发者_如何转开发s.ElementAt(index);

            ModelCopier.CopyModel(page, pageModel);
            ModelCopier.CopyModel(form, pageModel);

            return View(pageModel);
        }

Post Method

[HttpPost]
    public ActionResult View(PageViewModel pageViewModel)
    {
        if (!ModelState.IsValid)
        {
            return RedirectToAction("Details", "Forms", new { id = pageViewModel.FormId });
        }
            var pageToEdit = pageService.GetPage(pageViewModel.PageId);

            ModelCopier.CopyModel(pageViewModel, pageToEdit);

            pageService.SavePage();
            return RedirectToAction("Details", "Forms", new {id = pageViewModel.FormId});
    } 

How it's called from the View (from a view returned by another controller):

@Html.ActionLink("View", "View", "Pages", new { id = Model.FormId, index = item.Index-1 }, null)

What am I doing wrong here? I essentially want it to work as an update/edit function. And the view returned contains a simple form for the viewmodel.


An action link issues a GET request. You will have to implement some JavaScript function that captures the url and parameters, and dynamically creates and submits a new form with a POST method, or does an Ajax POST. You could write your own HTML Helper, to wrap this functionality, but the default functionality of clicking an <a> tag (which is what is generated by a Html.ActionLink) will issue a GET request.


I don't think you'll be able to use an action link - see this question

The options are to use jQuery to post data or swap to a simple form and submit

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜