C# 从同一解决方案中另一个项目的视图调用类库中的函数

C# 从同一解决方案中另一个项目的视图调用类库中的函数,c#,jquery,asp.net-mvc,unit-testing,qunit,C#,Jquery,Asp.net Mvc,Unit Testing,Qunit,我在类库中有这样一个函数 =============== public class QUnitTestController : DesignerController { public ActionResult Index() { InitializeModel(); var designer = ((Designers)(Convert.ToInt32(DesignerId))).ToString(); ViewBag.Co

我在类库中有这样一个函数

===============

  public class QUnitTestController : DesignerController
{
    public ActionResult Index()
    {
        InitializeModel();

        var designer = ((Designers)(Convert.ToInt32(DesignerId))).ToString();

        ViewBag.ControllerName = designer;

        return View("Index");
    }

    [HttpPost]
    [ActionName("designdocument")]
    public virtual ActionResult GetDesignDocument()
    {
        return GetJson("~/xmldata/Designer/QUnitDesignDoc.xml", true);

    }

    [HttpPost]
    [ActionName("designconfig")]
    public virtual ActionResult GetDesignConfig()
    {

        return GetJson("~/xmldata/Designer/QUnitDesignConfig.xml", true);
    }

    public ContentResult GetJson(string data, bool isUri)
    {
        var document = new XmlDocument();

        if (isUri)
        {
            document.Load(Server.MapPath(data));
        }
        else
        {
            document.LoadXml(data);
        }

        string jsonText = JsonConvert.SerializeXmlNode(document.DocumentElement);
        return Content(jsonText, "text/html", Encoding.UTF8);
    }
}
我在另一个MVC项目的自定义视图中有一些jquery代码,如下所示:-`

    <script type="text/javascript">

    //var designerDocument = null;
    //var designerConfig = null;
    //var designerController = null;
    //var zoom = null;


        function Test() {
            $.ajax({
                url: "QUnitTest/designdocument",
                type: "POST",
                dataType: 'json',
                async: true,//WHY??
                data: param = "",
                contentType: "application/json; charset=utf-8",
                success: function (data) {
                    alert("success");
                },
                error: function () {
                    alert("something went wrong");
                }
            });

            $.ajax({
                url: "QUnitTest/designconfig",
                type: "POST",
                dataType: 'json',
                async: true,//WHY??
                data: param = "",
                contentType: "application/json; charset=utf-8",
                success: function (data) {
                    alert("success");
                },
                error: function () {
                    alert("something went wrong");
                }
            });

            designerController = new Design.QUnitTestController();

            zoom = 0;
        }





        module("Load Designer Module", {
            setup: function () {
                //Test();
            }
        });
        test("Load Designer", function () {

            ok(true, "body was clicked!");
            var a = designerController.InitializeDesigner(designerDocument, designerConfig, "#designerContainer");
            equal(a, "expected value");
        });





</script>

//var designerDocument=null;
//var designerConfig=null;
//var designerController=null;
//var zoom=null;
功能测试(){
$.ajax({
url:“QUnitTest/designdocument”,
类型:“POST”,
数据类型:“json”,
async:true,//为什么??
数据:param=“”,
contentType:“应用程序/json;字符集=utf-8”,
成功:功能(数据){
警惕(“成功”);
},
错误:函数(){
警惕(“出了差错”);
}
});
$.ajax({
url:“QUnitTest/designconfig”,
类型:“POST”,
数据类型:“json”,
async:true,//为什么??
数据:param=“”,
contentType:“应用程序/json;字符集=utf-8”,
成功:功能(数据){
警惕(“成功”);
},
错误:函数(){
警惕(“出了差错”);
}
});
designerController=new Design.QUnitTestController();
缩放=0;
}
模块(“加载设计器模块”{
设置:函数(){
//Test();
}
});
测试(“负载设计器”,函数(){
好(没错,“身体被点击了!”);
var a=设计控制器。初始化设计人员(设计人员文档,设计人员配置,“#设计人员容器”);
等于(a,“预期值”);
});

问题是我无法调用类库中的函数。请告诉我如何才能使其正常工作

您需要注册一个正确的路由,以将URL(如“QUnitTest/someaction”)映射到控制器操作:

检查Global.asax.cs或RouteConfig类,并将以下代码添加到RegisterRoutes方法:

routes.MapRoute(
    name: "QUnitTest",
    url: "QUnitTest/{action}",
    defaults: new { controller = "QUnitTest", action = "Index" },
    namespaces: new[] { "NamespaceOfQUnitTestControllerClass" }
);

我的Global.asax.cs文件为空,并且我的项目中没有RouteConfig文件检查MVC项目,而不是类库。没有Global.asax,MVC项目将无法正常工作。它是应用程序的入口点。在MVC项目中搜索“MapRoute”,可能是因为您有一些自定义类来注册路由,而不是标准的应用程序启动处理程序。我检查了整个项目,但没有找到任何应用程序启动处理程序。我想在这里实现的只是。。。我使用的ajax方法dat应该可以找到控制器操作方法。。由于某种原因,它似乎无法这样做,因为我的控制器位于不同的库项目中,这就是它返回错误的原因。。。而不是成功。