Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 创建控制器基类(部分)_C#_Asp.net Mvc_Model View Controller_Renderaction - Fatal编程技术网

C# 创建控制器基类(部分)

C# 创建控制器基类(部分),c#,asp.net-mvc,model-view-controller,renderaction,C#,Asp.net Mvc,Model View Controller,Renderaction,由于my@html.render操作使我的开发和产品服务器崩溃,我不得不使用partialscrap 我尝试创建公共部分控制器{}类,以便为所有视图设置所需的数据,但我运气不佳,一切都会中断 我来自LAMP cakePHP背景,非常需要简单性 我需要知道如何创建不覆盖常规基本控制器的部分基本控制器,以及如何从类中访问多个模型 谢谢大家! public class BaseController: Controller { public override OnActionExecuting(.

由于my@html.render操作使我的开发和产品服务器崩溃,我不得不使用partialscrap

我尝试创建公共部分控制器{}类,以便为所有视图设置所需的数据,但我运气不佳,一切都会中断

我来自LAMP cakePHP背景,非常需要简单性

我需要知道如何创建不覆盖常规基本控制器的部分基本控制器,以及如何从类中访问多个模型

谢谢大家!

public class BaseController: Controller
{
   public override OnActionExecuting(...) { ... }
   public override OnActionExecuted(... context) 
   {
       if (context.Result is ViewResult)
           ((ViewResult)context.Result).ViewData["mycommondata"] = data;
   }
   ...
}

public class MyController1: BaseController 
{
}
即,仅从新的基本控制器类派生

然而,我建议你在这里问为什么你的渲染部分会崩溃——因为这对你来说是一种更好的方式,而且它显然不应该崩溃

即,仅从新的基本控制器类派生


然而,我建议您在这里询问为什么渲染部分会崩溃——因为它对您来说是一种更好的方式,而且显然不应该崩溃。

创建基本控制器的更好方式

    public class Controller : System.Web.Mvc.Controller
{
    public shipsEntities db = new shipsEntities();

    public Controller()
    {
        ViewData["ships"] = db.ships.ToList();
    }
}
这样,其余控制器将遵循常规惯例

public class MyController : Controller

创建基本控制器的更好方法

    public class Controller : System.Web.Mvc.Controller
{
    public shipsEntities db = new shipsEntities();

    public Controller()
    {
        ViewData["ships"] = db.ships.ToList();
    }
}
这样,其余控制器将遵循常规惯例

public class MyController : Controller

为什么不能覆盖基本控制器?只需创建您自己的基础控制器,其他所有控制器都从中继承。这是一个推荐的使用ASP.NET MVC的方法。在我的答案中添加了一条关于ViewData的注释。这条注释是为了让您得到通知。尽管如此,我还是建议您找出为什么RenderAction会在SO、post异常跟踪等处崩溃,因为它对于正交数据渲染非常有用。单个对象的ViewData[x]不应该抛出错误。渲染不应该崩溃。您仍然没有显示您遇到的任何错误,也没有显示来自RenderAction而不是ViewData[x]的错误。没有这些信息,几乎无法提供帮助。我同意,继续努力是很有趣的——也就是说,你自己——但是为什么在这里问呢?为什么你不能覆盖基本控制器?只需创建您自己的基础控制器,其他所有控制器都从中继承。这是一个推荐的使用ASP.NET MVC的方法。在我的答案中添加了一条关于ViewData的注释。这条注释是为了让您得到通知。尽管如此,我还是建议您找出为什么RenderAction会在SO、post异常跟踪等处崩溃,因为它对于正交数据渲染非常有用。单个对象的ViewData[x]不应该抛出错误。渲染不应该崩溃。您仍然没有显示您遇到的任何错误,也没有显示来自RenderAction而不是ViewData[x]的错误。没有这些信息,几乎无法提供帮助。我同意继续努力尝试是很有趣的-也就是说,你自己-但是为什么在这里问呢?renderpartial工作-它的renderactionfutures崩溃了,我需要多个数据集在我的视图中-现在查看视图模型模式-但是我真的很想念cakePHPi现在可以完成这项工作OK,RenderAction,但是它为什么崩溃以及如何崩溃?为什么你不想解决问题,而是想要一些不太适合问题的东西?另外,如果您需要多个数据,为什么不使用ViewData[data1]=data1;ViewData[data2]=data2。当然,你本来可以这样做的;如果我必须用CakePHP编写,我会说我现在已经可以在ASP.NETMVC中完成了;-。我尝试设置viewdata['x']和viewdata['y']viewdata['x']是单个对象viewdata['y']是一个列表,我可以将viewdata['y']传递给局部视图,但单个viewdata['x']抛出错误我仍在排除为什么renderaction会使一切崩溃-至少我仍在继续-学习“艰难之路”很有趣+1你能提供更高级的基类示例吗?什么意义上的高级,你需要什么功能?renderpartial可以工作-它的renderactionfutures崩溃了,我的视图中需要多个数据集-现在查看视图模型模式-但是我真的很想念cakePHPi可以在Nook,RenderAction之前完成这项工作,但是为什么它会崩溃,以及它是如何崩溃的?为什么你不想解决问题,而是想要一些不太适合问题的东西?另外,如果您需要多个数据,为什么不使用ViewData[data1]=data1;ViewData[data2]=data2。当然,你本来可以这样做的;如果我必须用CakePHP编写,我会说我现在已经可以在ASP.NETMVC中完成了;-。我尝试设置viewdata['x']和viewdata['y']viewdata['x']是单个对象viewdata['y']是一个列表,我可以将viewdata['y']传递给局部视图,但单个viewdata['x']抛出错误我仍在排除为什么renderaction会使一切崩溃-至少我仍在继续-学习“艰难之路”很有趣+1你能提供更高级的基类示例吗?高级在什么意义上,你需要什么功能?