【发布时间】:2021-04-22 23:52:54
【问题描述】:
我是 MVC 5 的新手。
我在 MyController 目录中有一个名为 MyPage.cshtml 的页面。在该页面上,我有一个链接,定义为....
@Html.ActionLink("Get Info", "GetInfo", "MyController", new { myId = 1 }, null)
所以,在 MyController 控制器中,我有一个 GetInfo 方法。我只是想让它做一些事情,填写 ViewBag 结果然后返回到它所在的同一页面,即 MyPage。但我得到一个“对象引用未设置为对象的实例”。页面加载时出错。我正在考虑重定向到 MyPage 它的模型丢失了。这是我的代码....
public ActionResult GetInfo(int myId){
// do stuff
ViewBag.Result = "this is a test";
return this.View("MyPage");
}
所以,为了简化事情:我实际上只处理一个页面,MyPage。链接点击只是调用一个自定义方法来做一些事情,我希望它回到原来的位置。请问有什么建议吗?
【问题讨论】:
-
我在您的代码中没有看到任何关于重定向的内容。你错过了那个和你的控制器/视图代码,你得到了 null ref 异常。
-
返回调用页面@mxmissile 的正确方法是什么?
-
来自您的控制器?
return RedirectToAction(...)。返回 View("MyPage") 不会重定向,只是将视图用于当前控制器操作。 -
但如果我这样做,我的 ViewBag.Result 会丢失对吗?我想要做的只是调用一个动作来做一些事情并留在页面上。此外,显示 ViewBag.Result 中的内容。 @mxmissile
-
你是对的,因为你想在你的行动中使用
TempData["Result"] = "this is a test",然后在你的视图“MyPage”中使用@TempDate["Result"]来效仿你的榜样。
标签: asp.net asp.net-mvc-5