2016-12-27 159 views
0

我嘗試調用我的sitefinity項目中使用mvc模型, ,但程序告訴無法加載資源:404, 並從未找到控制器,我不知道如何解決, 這是我的代碼函數無法加載資源:Mvc

jQuery的電話:

function myFunction(postId) { 
    $.ajax({ 
     url:'/CombosController/GetCantones', 
     type: 'POST', 
     dataType:"applicaiton/json; charset=utf-8", 
     data: { idprovincia: postId }, 
     success: function(data) {alert("success");}, 
     error: function() {alert("error");} 
    }) 
} 

控制器的操作:

[WebMethod] 
public static ActionResult GetCantones(int idprovincia) 
{ 
    CombosBL.Provincias.JsonListados metodos = new JsonLIstados(); 
    List<ClaseCantones.NCanton> ListaPropiedades = metodos.GetCantonesByIdProvincia(idprovincia); 
    var lista = ListaPropiedades; 
    return new JsonResult { Data = lista, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; 
} 
+0

請將代碼粘貼到圖片上 –

回答

0

可以打電話給你的MVC行動在兩個方面

第一種方式

例子:

[ControllerToolboxItem(Name = "CombosWidget", Title = "CombosWidget", SectionName = "MVC Custom Widgets")] 
public class CombosController : Controller 
{ 
    public ActionResult Index() 
    { 
     return View(); 
    } 

    public ActionResult GetCantones(int idprovincia) 
    { 
     //your logic is here 
    } 
} 

方式二

創建自定義URL路徑到您的控制器的動作

示例如何爲您的情況做到這一點。 Global.asax.cs代碼:

protected void Application_Start(object sender, EventArgs e) 
    {    
     Bootstrapper.Initialized += new EventHandler<Telerik.Sitefinity.Data.ExecutedEventArgs>(Bootstrapper_Initialized); 
    } 

    protected void Bootstrapper_Initialized(object sender, Telerik.Sitefinity.Data.ExecutedEventArgs e) 
    { 
     if (e.CommandName == "Bootstrapped") 
     { 
      RegisterRoutes(RouteTable.Routes); 
     } 
    } 

    private void RegisterRoutes(RouteCollection routes) 
    { 
     routes.Ignore("{resource}.axd/{*pathInfo}"); 

     routes.MapRoute(
      name: "CantonesApi", 
      url: "api/getcantones", 
      defaults: new { controller = "CombosController", action="GetCantones" } 
     ); 
    } 

然後,您可以撥打http://yourhost/api/getcantones