【问题标题】:Display partialview when clicking a link单击链接时显示部分视图
【发布时间】:2011-05-13 10:41:53
【问题描述】:

我对 JQuery 和 MVC 2 还很陌生,这使得这有点困难,我以前一直使用 WebForms。
我正在使用 NerdDinner 示例作为设置(不过,我已将 Dinner 切换为 Person)。
我想做的很简单。在表格中,当单击表格中的“详细信息”链接时,我想要一个带有详细信息的小型模式显示。
现在,当我单击一个链接时,我在新窗口中打开“Details.ascx”,它不会将其添加到详细信息 div 中

搜索页面(查看)

表中的链接:(foreach(模型中的变量项))

<%= Ajax.ActionLink("Details", "Details", new { id = item.id}, new AjaxOptions() { UpdateTargetId = "details" })%>  

javascript:

<script type="text/javascript">
    $('tr').click(function() {
        $("#details").load("Persons/Details/1")
    });
</script>

div 包含详细信息:

<div id="details" class="detailView">details here</div>

部分视图:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Person>" %>
<%@ Import namespace="RegistryTest.Models" %>
<div id="detailsModal">
    <%= Html.Encode(Model.surname) %>
</div>

控制器

public PartialViewResult Details(int id)
    {
        Person person = repository.GetPerson(id);

        return PartialView("Details", person);
    }

如果您需要有关设置的更多信息,请告诉我。

【问题讨论】:

标签: jquery asp.net-mvc ajax


【解决方案1】:

忽略 Ajax 助手,它们用于 ASP.NET AJAX 脚本。

将您的链接更改为:

<%= Html.ActionLink("Details", "Details", new { id = item.id})%> 

还有你的 jQuery:

    $('tr').click(function() {
        var url = jQuery(this).find('a').attr('href');
        $("#details").load(url)
    });

【讨论】:

    【解决方案2】:

    page1.asp

    <div class="holder">
        <div>1</div>
        <div class="test">2</div>
    </div>
    
    $('.holder').load('page1.asp .test');// 返回 =>> 2 // .test 抓取任何具有 .test 的元素并将其推入持有者

    所以页面看起来像这样......

    <div class="holder">
        <div class="test">2</div>
    </div>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多