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

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 投票
2 回答
1223 浏览

asp.net-mvc - ASP.NET MVC - 我的函数应该放在哪里?控制器?模型?

例如,我的用户注册网站中有一个密码生成器。我应该把生成密码的功能放在哪里?和UserController放在一起?

放置这些功能的正确方法是什么?

0 投票
1 回答
291 浏览

asp.net-mvc - 什么会在 Chrome 和 IE 中将我的视图和控制器从彼此中解开,但在 Firefox 中不会?

我之前在 Chrome 中的应用程序中成功测试了此 MVC 功能,但最近也在 IE (10) 和 Firefox 中进行了测试。

当我在将模型值发送到其控制器以运行查询和生成报告的页面上混合提交按钮时,它现在只能在 Firefox 中工作(这三个浏览器中的每一个确实都有自己独特的特征——它们在哪里发光或“相对于他们的同类(闪烁着紫色和金色的光芒)来说,“沉闷”——但 Chrome 和 Firefox 似乎已经失去了提交按钮的点击处理程序和相应的控制器方法之间的联系。

在 Chrome 和 IE 中混合提交按钮后,该应用程序似乎只是挂起;我的断点——第一个断点位于 Controller 类中相应 [HttpPost] ActionResult 的开头——没有到达。事实上,应用程序似乎在捣碎按钮后冻结 - 之后右键单击提交按钮不会在上下文菜单中给我“检查该元素”。

在 Firefox 中,它运行,并命中断点。

什么可能导致 Chrome 和 IE 以这种方式失败,而 Firefox 士兵却在使用?

更新

为了响应 Moby 的请求,这里是相关视图的 jQuery:

视图中的 HTML 非常通用;jQuery是:

更新 2

我的 .js 和 .css 引用可能会或可能不会对这个问题有所启发:

. . .

更新 3

Chrome 开发者工具中的网络标签看起来像怀俄明州的中部(一大堆什么都没有),底部有一条消息通知我“没有捕获请求。重新加载页面以查看有关网络活动的详细信息。

当我尽职尽责地捣碎 F5 时,它显示了所有访问的 .js 和 .css 文件,最后(在顶部)显示了我正在盯着看的页面。但是,混合“查看报告”不会导致选项卡中出现更多活动。我确实看到了我放置在提交按钮单击处理程序末尾的 console.log() 消息,但是,也就是说:“使它到达提交按钮单击的末尾

控制台中也有一个错误消息,但是:

只会无法加载资源,不会造成其他混乱,对吧?

更新 4

根据 Simon Halsey 的提示,我发现,在 Chrome 中单步执行 jQuery 时,它未通过此测试:

...显然它不在 Firefox 中,我认为它在 IE 中也失败了(我会在这两种情况下确定,并更新它)。

后来:在Firefox中也是“”……一次通过,它也失败了——不会继续下去。第二次通过,它通过了,虽然......?

0 投票
2 回答
6060 浏览

asp.net-mvc - 从另一个视图渲染部分视图(带有控制器操作)

我有一个包含树视图的布局。树视图由一个填充AddressBookController并呈现到每个页面中@RenderPage("addressbook.cshtml")(它当前位于Shared)。这样做的问题是我在视图和控制器之间有紧密的耦合,因为在我的 AddressBook.cshtml 的顶部我有以下代码:

如何从控制器渲染局部视图,以便像普通视图一样渲染它?

0 投票
1 回答
8353 浏览

c# - 在我的 BaseController 构造函数中获取现有会话

在我的 Global.asax 中,我在 Session_Start() 中有这段代码:

在我的 BaseController 中,我有这个属性:

它适用于所有使用此基本控制器的地雷控制器,但不适用于我的 BaseController 构造函数。

本次会议为空...

在我的 BaseController 中试试这个:

为什么?如何直接在我的 BaseController 中获取用户登录?更好的方法是什么?

0 投票
1 回答
1426 浏览

c# - MVC 4 控制器参考问题

System.Collections.Generic.IEnumerable<System.Web.Mvc.SelectListItem>不包含“添加”的定义,并且找不到接受第一个类型参数的扩展方法“添加” System.Collections.Generic.IEnumerable<System.Web.Mvc.SelectListItem>(您是否缺少 using 指令或程序集引用?)

我缺少什么参考?

0 投票
1 回答
478 浏览

asp.net-mvc - 在 ASP.NET Mvc 中,派生多个操作方法并返回同一视图的最佳方式是什么?

至今:

  • 我有一个页面,上面有多个提交,每个提交都取决于前一个。

  • 每次单击提交时都会呈现相同的页面。

  • 我发现自己在控制器方法(基于 ViewModel 的分支)中编写意大利面条代码,并希望将每个提交的行为分解为一​​个单独的方法。

  • 我实施了此处找到的解决方案——特别是 mkozicki 根据 Maartin Balliauw 的文章发布的解决方案。

  • 这对于分叉到不同的控制器方法非常有效。但是我遇到了两个问题:

    1. 每次返回相同的视图。
    2. 在 View.cshtml 中硬连接操作方法名称

这是代码:

控制器:

这里是视图的摘录 (SelectPlayer.cshtml)

因此:

  1. 从分叉操作方法返回是否具有return View("SelectPlayer",new PlayerStatViewModel(...);强制每次呈现相同视图(SelectPlayer.cshtml)的最佳解决方案?
  2. 有没有办法避免在视图中硬编码操作方法名称(即,如果可能的话,<form action="/PlayerStat/ChosenSeason" method="post">我想继续使用)@using (Html.BeginForm())
0 投票
2 回答
1858 浏览

asp.net-mvc - 发布到我的 MVC 4 控制器时,为什么我的父对象中的嵌套对象为空?

假设我有一个包含自定义类的复杂模型:

还有一个看起来像这样的 MVC 4 控制器:

如果我使用 ajax post 将此类的实例传递给控制器​​,然后尝试返回视图、部分视图,甚至只是查看对象,引擎的所有值都是null,但其他一切都很好。

在我看到的 JSON 示例中,该示例显示在 POST 的请求标头的表单数据中:

注意:FuelRemainingVehicleStatus的值在控制器和结果视图中显示得很好。

有人可以向我解释为什么会这样,以及如何最好地解决这个问题?

我确实从 asp.net 团队看到了这篇博客文章,但它是 2010 年的,我无法找到任何更新的信息。

0 投票
0 回答
209 浏览

asp.net-mvc - ASP.net MVC 4 控制器函数

我有一个应用程序,我必须以表格格式显示数据。最终用户有四种不同的显示方式,所以我有一个模型,每个控制器上都有不同的 LINQ 语句来操作数据。我有两个共享视图,其中包含控件(过滤选项下拉菜单、文本框等)和结果集。

我的问题是:我怎样才能分出重复的功能?我有用于过滤结果集的下拉框,原谅我的无知,我在每个控制器上调用相同的 LINQ 语句来加载该下拉列表的 ViewData。

如您所见,这是非常低效的,我在项目中添加了一个“UtlityController”,希望可以将这个函数和其他一些函数放在那里,但在视图上仍然有相同的输出......我还没有想到它还没有出来,我想我会向社区寻求帮助。

0 投票
1 回答
7158 浏览

c# - Controller.File() 的有效内容类型是什么?

我在 Visual Studio 中使用 MVC 4。我想知道如何使用 Controller.File() 方法创建文件。我知道我需要传递一个文件类型。什么是有效的文件类型?我在文档中没有看到这一点(http://msdn.microsoft.com/en-us/library/dd492492(v=vs.108).aspx)。

示例代码:

是否有人可以参考我的内容类型列表?我需要知道“txt”参数的格式(或者我应该放在那里的任何内容)(例如“txt”或“.txt”或“text/html”或“*.txt”等) .

0 投票
1 回答
622 浏览

asp.net-mvc - IIS MVC 4.0 在哪里可以找到控制器文件?

我开发了一个网站来监控我们的无线 AP 状态。该站点只需 ping 并返回活动或非活动的结果。

最近,我使用 IIS 导出功能将站点迁移到新机器。但是,我的 Windows 密码已过期,我试图在 IIS 中更改它并提示错误。经过一番研究,我注意到我没有从旧机器导出解密密钥信息。唯一的解决方案是重新创建整个站点。

我正在创建网站。我尝试在位于 IIS 的项目文件夹中找到我早期创建的控制器文件。

我的问题是,控制器文件存储在哪里?我上下搜索仍然找不到文件。

任何人都可以建议我应该在哪里看?