我试图使用Angularjs调用Contoller的动作方法。 以下是我的查看代码。
@using DotNetNuke.Framework.JavaScriptLibraries
@using DotNetNuke.Web.Client.ClientResourceManagement
@{
ViewBag.Title = "Index";
ClientResourceManager.RegisterScript(Dnn.DnnPage, "~/desktopmodules/mvc/DNNMVCModule/Scripts/angular.js");
ClientResourceManager.RegisterScript(Dnn.DnnPage, "~/desktopmodules/mvc/DNNMVCModule/Scripts/DnnMvcModule.js");
}
<h2 >DnnMvcModule Index</h2>
<div id="Testdiv" ng-app="dataStore" >
<div ng-controller="StoreController as store">
<h3>{{data.name}}</h3>
<h3>{{data.surname}}</h3>
</div>
</div>
Herer是我的角度js代码。
(function () {
var app = angular.module('dataStore', []);
app.controller('StoreController', function ($scope, $http) {
$http.get('/DnnMvcModule/GetData').
success(function (response, status) {
$scope.data = response;
alert(data.name);
}).
error(function (response, status, headers, config) {
$scope.data = response;
alert(data.cod);
});
});
})();
这是我的控制器的动作方法。
public class DnnMvcModuleController : DnnController
{
// GET: DnnMvcModule
public ActionResult Index()
{
return View();
}
[HttpGet]
public ActionResult GetData()
{
var data = new Responsedata { name = "Chirag", surname = "Daraji" };
return Json(data,JsonRequestBehavior.AllowGet);
}
}
当我尝试使用上面的代码调用控制器的GetData方法时,我收到以下错误形式的DNN。
Error: DNNMVCModule is currently unavailable.
\r\n DotNetNuke.Services.Exceptions.ModuleLoadException: Object reference not set to an instance of an object. ---> System.NullReferenceException: Object reference not set to an instance of an object.
\r\n at DotNetNuke.Web.Mvc.Routing.StandardModuleRoutingProvider.GetRouteData(HttpContextBase httpContext, ModuleControlInfo moduleControl)
\r\n at DotNetNuke.Web.Mvc.MvcHostControl.GetModuleRequestContext(HttpContextBase httpContext)\r\n at DotNetNuke.Web.Mvc.MvcHostControl.OnInit(EventArgs e)
\r\n --- End of inner exception stack trace ---\r\n\r\n\t
我尝试使用普通的MVC应用程序,它的工作正常。 有人可以帮我解决这个问题。!?
答案 0 :(得分:1)
根据您在此提供的信息,我认为您需要为正确的路线公开网址的不同部分。由于DNN mvc路由有点复杂。你能分享你的溃败配置吗?