【问题标题】:how to refer another view from the current one?如何从当前的视图中引用另一个视图?
【发布时间】:2012-09-08 20:01:39
【问题描述】:

我正在为一个非常基本的功能而苦苦挣扎。我想通过应用非常基本的 ajax 从当前视图中引用另一个视图来加载该视图中的内容。这是代码:

<div>
    <ul id="biographies">
    <li> <a href="Ajax">Ajax</a></li>
    <li> <a href="Index">Index</a>  </li>

    </ul>    

    <div id="biography">
      The ajax content will appear here...
    </div>

    <script type="text/javascript">
        $("#biography").load('Ajax.cshtml');


    </script>

</div>

两个页面都在同一个目录下:views/home

  • 问题一:加载事件如何传递参数?
  • 问题2:如何使用anchor标签链接到其他页面?

谢谢。

【问题讨论】:

    标签: c# jquery asp.net-mvc hyperlink


    【解决方案1】:

    使用Url.Action 辅助方法:

    $("#biography").load('@Url.Action("Ajax")');
    

    同样,您可以使用Html.ActionLink 获取a 标记用于操作或路由:

    @Html.ActionLink("Go to Index", "Index")
    
    @Html.ActionLink("Go to Home:Index", "Index", "About")
    

    输出将类似于&lt;a href='/About/Index'&gt;Go to Home:Index&lt;/a&gt;

    请记住,使用 MVC 的想法是 URL 指向资源和路由,而不是特定文件。最好使用这些辅助方法(而不是写出硬编码的 URL),因为它们可以精确地指定路由。

    【讨论】:

    • 注意:这将是操作的地址,而不是视图的地址。即,您需要一个操作来服务您的视图。
    • 尝试了 url.action 方法作为加载事件的参数,但仍然无法正常工作!还有什么事情要做吗?
    • @Jobskuk 你注意到 Onkelborg 的评论了吗?需要有一个名为Ajax 的操作以及视图。
    • @Jobskuk 在Home 控制器中Ajax 视图的URL 通常应该是/Home/Ajax
    • 问题是我没有正确引用jquery库!现在它工作正常。
    【解决方案2】:

    使用Html.ActionLink 生成链接,然后使用jquery 进行ajax 加载。当然,您需要在控制器中编写操作以返回部分视图。 jquery代码:jsfiddle

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-07
      • 2018-09-05
      • 2014-05-17
      • 2017-03-31
      • 2011-08-17
      相关资源
      最近更新 更多