问题标签 [asp.net-mvc-partialview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
69321 浏览

asp.net-mvc - ASP.NET MVC 3 - 部分与显示模板与编辑器模板

所以,标题应该不言自明。

要在 ASP.NET MVC 中创建可重用的组件,我们有 3 个选项(可能是我没有提到的其他选项):

局部视图:

自定义编辑器模板:

自定义显示模板:

就实际的 View/HTML 而言,所有三个实现都是相同的:

所以,我的问题是 - 您何时/如何决定使用这三个中的哪一个?

我真正在寻找的是在创建一个问题之前要问自己的问题列表,其答案可用于决定使用哪个模板。

这是我发现使用 EditorFor/DisplayFor 更好的两件事:

  1. 他们在渲染 HTML 帮助器时尊重模型层次结构(例如,如果您的“Foo”模型上有一个“Bar”对象,“Bar”的 HTML 元素将使用“Foo.Bar.ElementName”渲染,而部分将具有“元素名称”)。

  2. 更健壮,例如,如果您List<T>的 ViewModel 中有 a of ,您可以使用@Html.DisplayFor(model => model.CollectionOfFoo),并且 MVC 足够聪明,可以看到它是一个集合并为每个项目呈现单个显示(而不是 Partial,这需要显式的 for环形)。

我还听说 DisplayFor 呈现“只读”模板,但我不明白 - 我不能在上面扔一个表格吗?

有人可以告诉我其他一些原因吗?有没有比较这三者的列表/文章?

0 投票
1 回答
410 浏览

ajax - 传回参数时,部分视图如何在 asp.net MVC 中工作?

我有一个带有部分视图的页面,它是一个项目列表。我有一个按钮,显示接下来的 5 个项目。

这是通过 ajax 完成的:-

我的部分视图控制器:

我的问题是,每次有人按下包含在部分视图中的表单按钮时,我都需要“页面”变量递增。

我如何跟踪该变量?

0 投票
2 回答
2039 浏览

jquery - ASP.NET MVC 3 Razor 将部分从一个控制器视图渲染到另一个控制器视图

在不刷新主页的情况下从部分视图重定向到另一个部分视图的最佳方法是什么。因此,单击按钮后,1 个局部视图变为另一个局部视图。你能用 jQuery 做到这一点,还是有更好的方法来执行这个?你还需要传递一个 id

0 投票
3 回答
1563 浏览

jquery - ajax 和 asp.net-mvc - 我应该使用 PartialView 还是 Json?

我有一个 asp.net-mvc 站点。我有一个页面,上面有一个数据网格,当我想编辑一行时(通过显示一个弹出表单)。我有两个选择:

  1. 在隐藏的 div 中预加载和隐藏初始页面加载的表单,然后从服务器返回 json,绑定客户端上的所有字段和属性,然后显示它。

  2. 从 PartialView() 的服务器返回 PartialView() 在这种情况下,所有绑定都在服务器端

这似乎是方便与性能的决定。

选项 #2 更容易,因为我可以在 C# 中完成所有绑定(和任何逻辑),但似乎 #1 会更快,因为我没有通过网络发送所有 HTML(只是 json 数据)。这假设客户端的绑定将比额外网络命中的性能损失更快。

在使用 asp.net-mvc 填充表单时,我在返回 json 或 PartialView() 的决定中是否缺少任何其他因素

0 投票
1 回答
1221 浏览

asp.net-mvc-3 - 通过 jquery ajax 更新 viewModels

我想使用 asp.net mvc 实现一个产品。
我的产品分为几个模块,我想使用 jquery 选项卡小部件来指导用户完成提交。
我的 ProductController 将 viewModel 对象列表发送到产品视图。
所以我的产品视图如下所示:

到目前为止,一切都很好。当用户单击最后一个选项卡时,他会在我的 ProductController 上调用操作 Result。这是我的问题:收集部分视图的所有表单信息、将其发送回控制器并更新我的视图模型的最佳方法是什么?

感谢您的任何建议!

0 投票
1 回答
332 浏览

javascript - 从部分视图到主视图的 Javascript 调用

好的,所以我在 asp.net mvc 的部分视图中加载了一个 JQuery Grid。所以,假设在那个局部视图上,我能够获得在我的 JQGrid 中选择的行。但是,假设加载局部视图的主视图不能直接访问它,因为在浏览器刷新时加载的主视图和局部视图是使用 ajax 加载的。现在,这样做的最佳方法是什么。我应该使用 JSON 来存储我猜应用程序的状态。因此,在这种情况下,我希望能够从主视图访问 javascript 或部分视图的元素。

这样做的最佳方法是什么?

0 投票
1 回答
980 浏览

telerik - 重新绑定 Telerik 网格后更新部分视图

我有一个 MVC3 视图,它有一个带有人员信息的 Telerik 网格。通过 ajax 添加/更改/删除人员时,此网格将被“重新绑定”。在同一页面上是一个带有包含 3 个下拉列表的部分视图的用户控件。如何通过重新绑定 Telerik 网格来刷新部分视图,从而刷新下拉列表?


非常感谢,它看起来朝着我想要的方向发展,但不是全部。我试图合并你的提示,但没有设法让它发挥作用。以下是更多细节:此模型除其他外包含公司员工列表和基于公司员工的某些条件创建的 2 个人员列表。

像这样:

员工名单 = Person1、Person2、Person 3

项目经理 = Person1、Person2 开发人员 = Person1、Person3

员工列表显示在 Telerikgrid 中,可用于添加、更新或删除员工。

显示的子列表通过局部视图显示,并具有 2 个下拉列表。

当我对其中一名员工进行更改(通过 Telerik 网格)时,我希望此更改反映在下拉列表中。例如,当我向公司添加新员工时,比如说 Person4。我希望这个新员工可以与项目经理一起出现在列表中(当它满足成为项目经理的条件时)或者当它是开发人员时在开发人员列表中可用。

Telerikgrid 将通过 Ajax 更新。现在我还想在 Telerikgrid 被反弹后用 Ajax 更新下拉列表(.ClientEvents(events => events.OnDataBound(“Grid_onDataBound”)))。

这个怎么解决??

0 投票
1 回答
1428 浏览

c# - Error.cshtml 是局部视图还是什么?

我正在重构我所有的部分视图以使用前导下划线命名约定(我开始时不知道这个约定,不想偏离这样一个简单的约定)。但是我在 \Views\Shared 中遇到了生成的(剃须刀,C#)“Error.cshtml”视图,我注意到它看起来可能是部分视图(没有 html / body 标签)但不遵循约定:

我还注意到它没有指定布局,而是将ViewBag.Title属性设置为好像它将被布局使用。这是怎么回事?

0 投票
7 回答
175090 浏览

asp.net-mvc - 如何将参数传递给 ASP.NET MVC 中的局部视图?

假设我有这个部分观点:

可以通过仅限儿童的操作访问,例如:

我想在另一个视图中使用这个局部视图:

换句话说,我希望能够将 firstName 和 lastName 从视图传递到部分视图。我该怎么做?

0 投票
1 回答
1936 浏览

asp.net-mvc-3 - ASP.Net MVC 3 Razor,文件上传部分视图的通用方法

ERD 图

我有这个架构,现在我想要

  1. 在艺术家的创建视图中,我想使用CreatePicture Partial View 来上传图片并将数据保存在数据库中。与相册控制器和所有其他将使用图片ID 作为外键的控制器类似。

    在创建艺术家的保存按钮上,应该同时执行三个动作,

    • 在数据库中插入图片记录。
    • 将图片的物理文件保存在服务器上。
    • 使用新创建的图片 ID 将艺术家记录保存在数据库中。