2016-12-27 158 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