.net MVC,处理 json 和 Areas

发布于 2024-08-24 13:11:18 字数 549 浏览 7 评论 0原文

当不使用从客户端处理 JsonResults 的 url 的区域时,通常您可以将 url 硬编码到 json 调用中并摆脱它。当您有不同的区域并且您不想在将控制器(及其视图)从一个区域移动到另一区域时更新所有链接时,就会出现问题。我对在每个视图中都包含这段代码来处理这种情况的方式不太满意:

<script type="text/javascript">
    var ControllerActions = {
        JsonSearch: '<%= Url.Action("JsonSearch") %>/',
        JsonDelete: '<%= Url.Action("JsonDelete") %>/',
        Edit: '<%= Url.Action("Edit") %>/',
        Delete: '<%= Url.Action("Delete") %>/'
    }
</script>

虽然无论我将视图/控制器放在哪里它都可以工作,但我想知道是否有更优雅的方法可以做到这一点。

When not using areas dealing with the url for the JsonResults from the clientside is not much of a pain, usually you can get away with hardcoding the url into your json calls and get away with it. Problem arises when you have different areas and you don't want to update all your links when you move a controller (and its views) from one area to the other. I'm not very satisfied with the way I'm handling this scenario by having this chunk of code inside every view:

<script type="text/javascript">
    var ControllerActions = {
        JsonSearch: '<%= Url.Action("JsonSearch") %>/',
        JsonDelete: '<%= Url.Action("JsonDelete") %>/',
        Edit: '<%= Url.Action("Edit") %>/',
        Delete: '<%= Url.Action("Delete") %>/'
    }
</script>

While it does work no matter where I place the views/controllers I wonder if there's a more elegant to do this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无人问我粥可暖 2024-08-31 13:11:18

我个人喜欢你上面采取的方法。最终,如果您希望控制器和操作具有移动性,最好的办法是依赖 ASP.NET MVC 中可用的路由生成器(例如您的 Url.Action)。我唯一的其他建议是将其拉入部分/可重用控件中,以便它归结为代码中的一行。

I personally like the approach you've taken above. Ultimately, if you want to have mobility of your controllers and actions, the best thing is to depend on the Route generators availble in ASP.NET MVC (such as your Url.Action). My only other recommendation is to pull it into a partial/reusable control so it boils down to a single line in your code.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文