3

我的每个控制器方法都需要重定向回索引页面,并将它们发送回控制器的模型对象发送回控制器。但是,在一种情况下,我需要与模型对象一起发送一条错误消息。下面是 Index 方法的签名:

    public ViewResult Index(ZipCodeIndex search, string unspecifiedAction = "")

由于我只需要一种方法的错误消息,因此我将此参数设为可选。这是我尝试从单独的操作重定向到索引的方式:

        //the parameter 'updateZip' is a model object of type ZipCodeIndex
        return RedirectToAction("Index", new { search = updateZip, unspecifiedAction = "Error: Action could not be determined. IT has been notified and will respond shortly."} );

所有这些最终都会将用户发送回原始页面,并显示错误消息“对象引用未设置为对象的实例”。

编辑

在控制器点击后,RedirectToAction它只是退出控制器而不重定向到 Index 方法,并且视图上出现错误“对象引用未设置为对象的实例”。

4

1 回答 1

4

你不能传入类对象RedirectToAction,所以删除search = updateZip参数。

如果你需要它。你可以把它TempData作为替代

将您的操作修改为

public ViewResult Index(string unspecifiedAction = ""){
      var search = (ZipCodeIndex)TempData["ZipCodeIndexData"];
      //rest of code
}

重定向

TempData["ZipCodeIndexData"] = updateZip;
return RedirectToAction("Index", new { unspecifiedAction = "Error: Action could not be determined. IT has been notified and will respond shortly."} );
于 2013-10-04T18:44:23.890 回答