问题标签 [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 投票
5 回答
2664 浏览

c# - 在 Mvc.Controller 中使用服务器

我有自己的继承App.ControllerMvc.Controller然后我的所有控制器都继承自。我使用接口编写了一个提供程序并将其实现为MyService,并且构造函数采用其Server属性Mvc.ControllerHttpServerUtilityBase.

MyService但是,我在App.Controller的构造函数中实例化。问题是ServerController的属性是null在构造时MyService。我曾经public Controller () : base() { }得到要建造的基地。然而,Server依然null

如果可能的话,我想避免Web.HttpContext.Current.Server

有没有人解决这个问题?

编辑:嗯,我已经实现了 tvanfosson 的建议,当我的应用程序MyService在属性get方法中构造时,Server仍然为空。

编辑2:没关系,我是个傻瓜。我也有另一个Controller使用Server,但没有改变。结案。

0 投票
2 回答
390 浏览

.net - MVC 控制器独立于视图类型 UpdateModel

我想在没有通知视图类型的控制器中使用 updateModel。我有不同的视图,它们具有不同的类型,但都有一个 ExternalBase 类作为继承类型。

所以在我的控制器中我总是有一个 ExternalBase 但控制器不知道正确的类型。

在保存时,我调用了一个获取正确对象的方法,但它将它作为 externalBase 返回。innertype 是我的正确类型。如果我将鼠标悬停在我的对象上,它就是调用保存的视图类型。现在,如果我在其上调用 updateModel,它不会填写属性。

举个例子:

// MyExternalBase 是一个空类

班级人

在我的保存控制器中,我执行以下操作:

现在 p 没有填满。

如果我改为使用 Person p = new Person() 那就没问题了。但我希望我的控制器独立于视图类型。

这是 updateModel 中的错误还是不可能的?还是有解决方法?

0 投票
11 回答
211404 浏览

asp.net-mvc - 允许多个角色访问控制器操作

现在我装饰了一个这样的方法来允许“成员”访问我的控制器操作

如何允许多个角色?例如,以下内容不起作用,但它显示了我正在尝试做的事情(允许“成员”和“管理员”访问):

0 投票
2 回答
205 浏览

c# - MVC + 这种 1:n 关系的模式

我有一个带有 GUI 的服务器应用程序。用c#写的。现在我想对整个应用程序使用 MVC 模式。

通常你有 1 个模型,1 个控制器,也许还有 n 个视图。好的,我拥有一切,但我不确定模型。

我的情况: 有 1 个服务器状态,可以在线/离线,有客户端计数等。这可能是我的“ServerModel”。我将通过我的网络库处理网络连接,并在连接时创建学生对象。这一切都发生在这里。如果有新学生,该视图将被注意到并为新学生显示一个 GUI 元素(通过控制器)。现在在我看来有一个与特殊学生相关的操作,控制器收到通知“StudentChanged”并获取已更改的学生。

问题: 控制器现在可以直接更改学生或告诉 ServerModel 如何更改学生。第二种方法乍一看似乎有些过头,但保持 MVC 设计清晰。我想直接从控制器更改学生。但我不确定这种违反 MVC(学生不是模型,而是模型的一部分)是否会给以后的开发或整个代码的灵活性带来任何缺点。

来自汉堡的问候;)

0 投票
2 回答
287 浏览

asp.net-mvc - 关于 ASP.NET MVC 和使用 HTTP-POST 的表单发布的问题

我有一个标准的 ASP.NET MVC 表单帖子。

例如。

现在,我怎样才能让我忽略对象中可能存在的某些值,例如ID或属性?CreatedOnComment

有没有办法可以定义排除/黑名单

0 投票
4 回答
8008 浏览

asp.net-mvc - 对我的控制器方法进行单元测试会导致 ViewName 为空?

我正在对我的标准进行一些简单的 MS 单元测试,没有什么特别的控制器。

当我ViewName从返回的ViewResult对象中检查属性时,它是""(空的)。

我的印象ViewNameView(正如这篇 关于 ASP.NET MVC 控制器测试的 MS 文章所建议的那样)。

顺便说一句,当我测试 ViewData 时,一切都在那里并且正确。

这是我的代码...

0 投票
7 回答
38685 浏览

asp.net-mvc - 使用相同的方法签名发布和获取

在我的控制器中,我有两个称为“朋友”的动作。执行的取决于它是“获取”还是“发布”。

所以我的代码片段看起来像这样:

但是,这不会编译,因为我有两个具有相同签名的方法(朋友)。我该如何去创造这个?我是否只需要创建一个操作,但要区分其中的“获取”和“发布”?如果是这样,我该怎么做?

0 投票
1 回答
989 浏览

asp.net-mvc - 视图到控制器通信

我试图找到在我需要例如过滤的情况下视图控制器通信的最佳实践。

我收集了页面上的项目和过滤器控件。我正在按字母、状态等过滤项目......这是一个简单的场景,我将过滤器选择的值发送给控制器,控制器将结果返回给页面。

如果您考虑一下,这是一个方向循环。查看带有参数(过滤器值)的调用控制器,控制器调用数据库,然后获取元素并将该元素返回给视图。有没有办法将这些元素和控制器发送到控制器只是为了过滤它们并将过滤后的集合返回给视图?或者也许可以缩短到服务器的行程,给控制器只是元素的 id,控制器知道要从数据库中提取哪些元素,然后过滤它们,将过滤后的集合返回......

不好的做法?一些工作?

你怎么看?

谢谢

0 投票
5 回答
11938 浏览

c# - 如何避免两个控制器操作之间的 AmbiguousMatchException?

我有两个名称相同但方法签名不同的控制器操作。它们看起来像这样:

我的单元测试调用一个或另一个控制器操作没有问题,但我的测试 html 页面抛出 System.Reflection.AmbiguousMatchException。

需要改变什么才能使这项工作有效?

0 投票
2 回答
1146 浏览

asp.net-mvc - 在 ASP.NET MVC 中处理表单的正确方法是什么?

Forms + ASP.NET MVC = 让我困惑:

  1. 为表单帖子设置控制器操作的首选方法是什么?

    • 我是否需要指定具有 [AcceptVerbs(HttpVerbs.Post)] 的属性?
    • 控制器操作应该采用“FormCollection”还是应该使用 ModelBinders?
    • 如果我应该使用 ModelBinders,如何使用?
  2. 如何在视图中设置表单?

    • 我应该使用 Html 助手,如 Html.BeginForm/Html.EndForm 还是自己指定表单标签?
    • 您如何指定要在表单中使用的控制器和操作(使用 Html 帮助程序或使用手动表单标记)?

有人可以向我展示一个带有表单的简单视图〜和〜它对应的控制器动作吗?

我正在尝试使用单个文本框编写一个表单,我可以将其提交给 Home/Create 操作并将字符串从文本框传递给它。