使用DNN 8 mvc模块

时间:2016-03-29 06:50:14

标签: dotnetnuke

我试图使用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应用程序,它的工作正常。 有人可以帮我解决这个问题。!?

1 个答案:

答案 0 :(得分:1)

根据您在此提供的信息,我认为您需要为正确的路线公开网址的不同部分。由于DNN mvc路由有点复杂。你能分享你的溃败配置吗?