避免在 Action 中渲染视图的正确方法
我目前使用 ajax post 返回一个操作来创建一个新的数据库对象,然后返回该对象视图的渲染 html。然后我将该 html 注入到页面中。
我想知道,由于 MVC 确实允许您轻松地从控制器内将视图渲染为 HTML,是否有更好(或更正确)的方法来解决该问题。
(我目前使用 此代码 在操作中将视图呈现为 html)。
任何和所有的想法表示赞赏。
I currently use an ajax post back to an action to create a new database object and then return the rendered html for a view of that object. I then inject that html into the page.
I was wondering, since MVC does easily allow you to render views to HTML from within controllers, if there was a better (or more correct) approach to the problem.
(I currently use this code to render the view as html in the action).
Any and all ideas appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
事实上是有的。只需返回部分视图即可。
As a matter of fact there is. Just return a partial view.
确实,您可以使用 PartialView 渲染它或通过 JSON 进行自定义(PartialView 更容易!)。
这实际上取决于您对优雅降级的实施和选择。
我通常做的是:
这样鱼和熊掌才能兼得。
说实话,有多种方法可以从服务器获取此视图。您可以使用 asp.net mvc ajax js 库,使用 .getJSON 或 .ajax,甚至使用 .load 通过 JQuery 执行此操作: http://api.jquery.com/load/
It's true you can render it using PartialView or doing it custom via JSON (PartialView is just so much easier!).
It really depends on your implementation and choices regarding graceful degradation.
What I usually do is:
So it is possible to get your cake and eat it too.
Truth be told there are various ways to get this view from the server. You could use the asp.net mvc ajax js library, use .getJSON or .ajax, or even do it via JQuery using .load: http://api.jquery.com/load/
您可以按照建议的其他答案呈现 PartialView 或返回 JsonResult 并从 JSON 数据填充 HTML。你的电话。
You can render a PartialView as the other answer suggested or return JsonResult and populate your HTML from the JSON data. Your call.