返回视图在网址中缺少ID

时间:2014-01-31 09:50:04

标签: c# asp.net-mvc

我有一个允许修改记录的网站。记录的页面网址采用格式/ edit / 112。

我在命令上有2个按钮(保存/删除),它使用多按钮命令将数据转发到正确的操作。转发到保存操作时,然后检查模型状态是否有效。我遇到的问题是,如果模型状态为false,我想用模型重定向回编辑视图,同时保持id仍然完整。我在返回视图时丢失URL ID的问题。

这是我的代码

 [HttpPost]
    [MultipleButton(Name = "action", Argument = "Update")]
    public ActionResult Update(CustomerViewModel model)
    {
        TempData.Keep();
        model.CustomerTypes = TempData["dropdownlist"] as IEnumerable<CustomerTypes>;


        if (!ModelState.IsValid)
        {
            return View("Edit", model);
        }
        var status = _customerService.UpdateCustomer(model.ToServiceModel());

        if (status.Result) return View("Index");
        ModelState.AddModelError("Model", status.Message);
        return View("Edit", model);
    }

任何帮助......

1 个答案:

答案 0 :(得分:0)

你有一堆隐藏在那里的自定义代码,所以很难肯定,但一般来说,对于包含id的路由,它需要两个部分:

  1. 您的操作需要能够接受ID:

    public ActionResult Update(int id, CustomerViewModel model)
    
  2. 您必须在生成路线网址时传递ID(Html.ActionLink等,或Url.Action等等:

    @Html.ActionLink("Update this!", "Update", "MyController", new { id = Model.Id })