0

MVC 新手在这里。我有一个带有主视图(Index.cshtml)的 MVC3 项目。您可以从此视图转到 CreateRemark.cshtml 视图。您可以在此视图上创建和保存备注。在 POST 操作中,我有逻辑将数据保存到数据库,然后我想再次呈现索引视图。

我在我的操作 CreateRemark 结束时这样做:

Return View("Index");

我希望我的 URL 看起来像 localhost/ 或 localhost/Index。但它一直说 localhost/CreateRemark?id=123,而它实际上渲染了 Index 视图上的 html。虽然它呈现错误(我还没有完全调查,但它丢失了按钮中的所有图像并且分层网格错过了第二级),我想我可以通过确保将最终用户引导到索引视图来解决这个问题正确的 MVC 方式。我想我做错了。

顺便说一下,GET/POST 操作 Index 和 CreateRemark 都在同一个 Home 控制器中。我想我以后想要一个 RemarkController,但还没有这样做。对不起。

有人可以指出我正确的方向吗?在此先感谢您的帮助。

4

2 回答 2

3

您只是从同一控制器操作返回不同的视图,因此 URL 将保持不变。

如果您只是想让用户执行相同的操作,然后调用索引操作,请使用

  return RedirectToAction("Index");

http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.redirecttoaction%28v=vs.108%29.aspx

于 2013-03-11T13:27:43.013 回答
1

url 是用户导航到的任何内容。如果他们导航到该页面(我假设在“从这个视图中您可以转到...”位),那么这就是 url

您提供的字符串Return View("Index")与 URL 没有任何关系;这只是告诉视图引擎使用哪个视图文件。此时您可以更改 URL 的唯一方法是将重定向返回到索引操作/路由:

return RedirectToAction("Index");

请注意,这将涉及对客户端的额外 http 请求。

于 2013-03-11T13:28:25.417 回答