在扩展控制器中更改ViewData的类型 - c#

我创建了自己的CustomController基类,该基类继承自Controller。
同样,我创建了自己的CustomViewData,它继承自ViewDataDictionary。
CustomController类具有一个接受CustomViewData作为参数的ctor。

我所有的控制器都继承自CustomController并传递其继承的CustomViewData。
现在,我希望能够从控制器中调用this.ViewData并取回我在控制器中传递的视图数据。目前,我从Controller类中获得了ViewDataDictionary。因此我丢失了类型信息。

如何将我的类型信息保留在CustomController派生类的ViewData属性中,而不将其包装在为我装箱的get / set中?

c#参考方案

ViewData属性是在ControllerBase类中定义的,您不能覆盖它,但是您可以这样做:

public class CustomController : Controller {

    public new CustomViewData ViewData { get; set; }

}

但请注意,如果您这样访问CustomController实例

Controller c = myCustomControllerInstance;
CustomViewData cvd = c.ViewData;

您的代码将无法编译,因为您将使用ViewData属性的默认实现,并且它将返回ViewDataDictionary实例。

asp.net使用客户端验证而不发布到服务器 - c#

我有一个很长的表格,分为几个部分。我想利用内置的ASP.NET验证控件而不在提交表单之前将其回发到服务器。为了提供更多的上下文,让我解释一下我的想法。该表格分为几部分,每个部分都有一个“下一步”按钮。单击“下一步”按钮时,将使用ASP.NET包含的客户端代码来验证该部分。如果该部分有效,则jquery方法将隐藏该部分并显示下一个。当用户到达表单的最后部分时,…

ASP.NET持久缓存(“延迟加载”样式吗?) - c#

我在使缓存按我想要的方式工作时遇到了麻烦。问题:检索请求的数据的过程非常耗时。如果使用标准的ASP.NET缓存,则某些用户将承担检索数据的“重任”。这是不可接受的。解决方案?:数据是否为100%当前并不重要。我想提供旧的无效数据,同时在另一个线程中更新缓存的数据,使新数据可用于将来的请求。我认为,数据需要以某种方式持久化,以便能够在应用程序重新启动后为第一个…

单击选项卡链接时,请专注于每个引导选项卡中的First asp:textbox - javascript

我是开发的新手,并开始开发简单的asp.net应用程序。我正在使用每个都有一些asp标签和文本框的bootstrap选项卡。单击该选项卡时,我要重点关注选项卡内容中的第一个文本框。我搜索了各种答案,但都是针对输入字段的(exp:输入type =“ text”)。找不到适用于ASP文本框的任何内容。任何帮助将不胜感激。谢谢 javascript参考方案 ASP…

Spring MVC:如何获取请求的处理程序方法 - java

我正在尝试根据Spring @RequestMapping注释方法上存在的注释实现一些逻辑。因此,我的方法中有一个HttpServletRequest实例,我想问一下spring“给我一个方法,该方法将被调用以处理此请求”,因此我可以使用反射API来询问是否存在我的注释,因此我可以更改处理。有什么简单的方法可以从Spring MVC获取此信息? java大神…

java.net.URI.create异常 - java

java.net.URI.create("http://adserver.adtech.de/adlink|3.0") 抛出java.net.URISyntaxException: Illegal character in path at index 32: http://adserver.adtech.de/adlink|3.0 虽然n…