在asp.net mvc 3项目中渲染部分视图onclick

2024-05-07

在我的 mvc 项目中,我有一个简单的项目列表,其中包含如下的增删改查操作:

<tbody>
 @{
    foreach (var item in Model)
    {            
         <tr>

            <td>@item.Title</td>
            <td>@item.Body</td>
            <td>@item.Price</td>
            <td><span class="EditLink ButtonLink" noteid="@item.Id">Edit</span>&nbsp;|&nbsp;<span>@Html.ActionLink("Delete", "Delete", new { id = @item.Id})</span>
                            &nbsp;|&nbsp; @Html.ActionLink("Detalji", "Details", new { id = @item.Id})
             </td>
        </tr>
     }
  }

</tbody>

我想知道当我单击详细信息时是否可以将详细信息视图呈现为表格下方的部分内容。 我的意思是,当我单击详细信息以向我显示详细信息视图时,我希望它位于我的表格下的某个 div 或段落中。

请帮忙。


你可以使用 AJAX。但首先让我们通过消除这些循环并用显示模板替换它们来改进您的代码:

@model IEnumerable<SomeViewModel>
<table>
    <thead>
        <tr>
            <th>Title</th>
            <th>Body</th>
            <th>Price</th>
            <th>actions ...</th>
        </tr>
    </thead>
    <tbody>
        @Html.DisplayForModel()
    </tbody>
</table>

<div id="details"></div>

然后定义一个显示模板(~/Views/Shared/DisplayTemplates/SomeViewModel.cshtml):

@model SomeViewModel
<tr>
    <td>@Html.DisplayFor(x => x.Title)</td>
    <td>@Html.DisplayFor(x => x.Body)</td>
    <td>@Html.DisplayFor(x => x.Price)</td>
    <td>
        <!-- no idea what the purpose of this *noteid* attribute on the span is
             but this is invalid HTML. I would recommend you using the
             HTML5 data-* attributes if you wanted to associate some
             metadata with your DOM elements
        -->
        <span class="EditLink ButtonLink" noteid="@Model.Id">
            Edit
        </span>
        &nbsp;|&nbsp;
        <span>
            @Html.ActionLink("Delete", "Delete", new { id = Model.Id })
        </span>
        &nbsp;|&nbsp; 
        @Html.ActionLink(
            "Detalji",                      // linkText
            "Details",                      // actionName
            null,                           // controllerName
            new { id = Model.Id },          // routeValues
            new { @class = "detailsLink" }  // htmlAttributes
        )
    </td>
</tr>

现在剩下的就是在单独的 javascript 文件中将此详细信息链接 AJAX 化:

$(function() {
    $('.detailsLink').click(function() {
        $('#details').load(this.href);
        return false;
    });
});

当然,假设您执行以下操作:

public ActionResult Details(int id)
{
    SomeDetailViewModel model = ... fetch the details using the id
    return PartialView(model);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在asp.net mvc 3项目中渲染部分视图onclick 的相关文章

随机推荐

  • 从另一个文件执行按钮命令?

    我已经开始开发一个 GUI 系统 在该系统中 我需要从一个文件导入一个函数 以便在按下按钮时在主文件中执行 但每次运行它时 我都会得到 AttributeError partially initialized module Two has
  • 在 Docker Compose 中更改 postgres 容器服务器端口

    我正在尝试使用 Docker compose 在远程服务器上部署第二个数据库容器 该 postgresql 服务器在端口 5433 上运行 而不是第一个 postgresql 容器使用的端口 5432 当我设置应用程序时 我收到以下错误输出
  • 获取没有特定祖先 xml xpath 的节点

    我想要 xpath 它获取没有祖先的节点 它是特定节点的第一个后代 假设我们有这样的 xml 文档 a b This node b a
  • CKEditor - 内联:以禁用模式显示

    我正在尝试在内联模式下使用 CKEditor 如下所示 var div div content CKEDITOR disableAutoInline true CKEDITOR inline div 0 单击 div 时 将显示 CKEdi
  • 在android中重叠屏幕

    在下面的布局中 我有一个名为扫描设备的文本视图 其中显示设备名称 但我的设备列表显示在屏幕上方 任何人都可以帮助我如何滚动视图应该在设备列表内 滚动屏幕时 它显示设备列表 但它显示在屏幕上方 想要显示在屏幕内
  • Windows 控制台“ESC[2J”并没有真正“清除”屏幕

    我知道这类问题经常被问到 但我认为这个问题有点不同 需要被问到 新的 Windows 控制台支持 ANSI VT100 控制代码 ANSI VT100 控制代码 http www termsys demon co uk vtansi htm
  • 错误LNK2001:无法解析的外部符号公共:静态类[重复]

    这个问题在这里已经有答案了 我不明白为什么我会收到这个错误 任何人都可以伸出援手吗 我需要在头文件中声明VideoCapture捕获并在Video cpp中调用它 Video h class Video public static Vide
  • mongodb c# 选择特定字段

    需要一些帮助来创建generic按名称选择字段的方法 像这样的东西 T GetDocField
  • 如何防止模块被导入两次?

    在编写python模块时 有没有办法防止它被客户端代码导入两次 就像 c c 头文件一样 ifndef XXX define XXX endif 非常感谢 Python 模块不会被多次导入 仅运行两次 import 不会重新加载模块 如果你
  • Xcode 中的“使用不间断空格 (U+00A0) 代替常规空格”警告

    When typing a space character in Xcode a warning appears sometimes 使用不间断空格 U 00A0 代替常规空格 早期的 Xcode 版本显示以下消息 将 Unicode 字符
  • 如何获取表单的onSubmit事件?

    我想知道如何抢onsubmit表单中的事件来进行一些表单验证 因为我无权直接访问它 我正在编写一个用于评论的 WordPress 插件 因此无法直接访问表单标签或提交按钮 我在尝试为我的插件执行此操作时感到非常沮丧 因此我在下面编写了一个
  • 如何选择集合的第一个元素作为查询的列

    表 t 有两列 a 和 b a是整数 b是集合 我想为每一行选择 a 和集合 b 的第一个值 我试过了 但没用 WITH s a b AS SELECT 1 ff FROM DUAL UNION ALL SELECT 1 ee FROM D
  • 如何将十进制整数转换为十六进制整数? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions cout lt
  • 如何运行 Abaqus 宏 (.py) 脚本

    我是Python新手 我使用 Abaqus 宏管理器生成了一个宏 它是一个 py 脚本 我意识到该脚本仅在从 Abaqus 管理器运行时才有效 并且不能自行运行 请有人知道如何修改这个脚本 以便我可以在不使用 Abaqus 的情况下运行它
  • 如何绘制两个 ggplot 密度分布之间的差异?

    我想使用 ggplot2 来说明两个相似密度分布之间的差异 这是我拥有的数据类型的玩具示例 library ggplot2 Make toy data n sp lt 100000 n dup lt 50000 D lt data fram
  • 退出失败设置错误代码

    我有一个 C Windows 程序无法设置退出代码 该程序非常复杂 我目前无法通过简单的测试用例重现该程序 我确实知道该程序调用exit 1 因为我在那一行有一个断点 在我跨过它之后 调试器 VS2010 立即打印The program p
  • 使用 Rails 自动登录?

    我正在尝试使用 Rails 的 Restful Authentication 插件建立一个简单的身份验证系统 我只是想知道它是如何工作的 b c 我似乎无法弄清楚 cookie 的要求是什么 以及如何做到这一点浏览器始终会记住您 6 个多月
  • 难道 Linq to SQL 没有抓住要点吗? ORM 映射器(SubSonic 等)不是次优解决方案吗?

    我希望社区能够了解我对 Linq to Sql 和其他 ORM 映射器的一些想法 我喜欢 Linq to Sql 以及用本机开发语言表达数据访问逻辑 或一般的 CRUD 操作 的想法 而不必处理 C 和 SQL 之间的 阻抗不匹配 例如 要
  • 无法实例化名为 GLKView 的类

    我得到了这个异常 2014 02 19 19 08 34 590 MyApp 42353 70b Terminating app due to uncaught exception NSInvalidUnarchiveOperationEx
  • 在asp.net mvc 3项目中渲染部分视图onclick

    在我的 mvc 项目中 我有一个简单的项目列表 其中包含如下的增删改查操作 tbody foreach var item in Model tr td item Title td td item Body td td item Price