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应该可以找到控制器操作方法。。由于某种原因,它似乎无法这样做,因为我的控制器位于不同的库项目中,这就是它返回错误的原因。。。而不是成功。