MVC newbee在这里。我有一个MVC3项目,主视图(Index.cshtml)。在此视图中,您可以转到CreateRemark.cshtml视图。您可以在此视图上创建和保存备注。在POST操作中,我有逻辑将数据持久保存到数据库,然后我想再次呈现索引视图。
我在动作CreateRemark的最后写了:
Return View("Index");
我希望我的网址看起来像localhost /或localhost / Index。但它一直说localhost / CreateRemark?id = 123,而它实际上渲染了索引视图上的html。它渲染错误(我没有完全调查,但它缺少按钮中的所有图像,分层网格错过了第二级)我想我可以通过确保我将最终用户指向索引视图来解决这个问题。正确的MVC方式。我想我做错了。
GET / POST操作Index和CreateRemark都在同一个Home控制器中。我想我以后想要一个RemarkController,但还没有这样做。遗憾。
有人能指出我正确的方向吗?在此先感谢您的帮助。
答案 0 :(得分:3)
您只是从同一控制器操作返回不同的视图,因此URL将保持不变。
如果您只是希望发生相同的操作,就好像用户随后使用
调用索引操作一样 return RedirectToAction("Index");
答案 1 :(得分:1)
无论用户导航到,网址都是。如果他们导航到该页面(我假设在“从此视图中您可以转到...”位),然后这是网址。
您在Return View("Index")
中提供的字符串与网址没有任何关系;这只是告诉view-engine使用哪个视图文件。您可以在此时更改网址的唯一方法是将重定向返回到索引操作/路由:
return RedirectToAction("Index");
这将涉及为客户提供额外的http请求,请注意。