2014-01-27 38 views
1

所以我被拉进了一个在umbraco没有任何经验并且期限很紧的深处。 我不知道umbraco是如何工作的,以及如何将你的MVC网站真正融入其中。很多headfuzz来解决。Umbraco和MVC和JSON

基本上我继承它的人从MVC创建了一个基本控制器,我们可以像往常一样调用MVC站点。

我也可以对控制器动作进行JSON调用,这会让我们在ViewModel中返回一些数据。大。 但是,当您使用umbraco浏览到该网站并导航到同一页面时,我们遇到了一些重大问题,例如无法调用JSON调用来获取数据,因为它表示找不到对象(换句话说,控制器操作未找到)。

我读了关于umbraco基本上覆盖默认的MVC路由,但......为什么这么混乱? :)

我该如何将现有的MVC网站整合到umbraco中而不会有太大的痛苦? 在umbraco集成中调用控制器操作的url是什么?

说我们有这样的:

public JsonResult GetPersonDetail(int id) 
{ 
    var vm = new AjaxPersonDetailViewModel(....); 
    return new JsonResult(Data = vm }; 
} 

我可以把这个在JQuery中像这样:

/myController的/ GetPersonDetail/1

让我怎么做,与一把umbraco?

+0

的一种方式从SurfaceController扩展您的控制器,并调用您的操作,如/ umbraco/surface/mycontroller/getpersondetail/1 –

+0

谢谢。我会试试这个。我想我已经尝试了这个,但仍然有一个错误说没有找到对象。我将尝试一个干净的项目,并使用umbraco设置我的演示环境,并在此处逐步完成,看看它是否可行。其中一个项目,人们在一起混搭东西 –

回答

0

是你可以手动创建脚手架过程中创建的文件,并相应地引用它们,但是我更喜欢使用第一,然后添加/调整的自动配置文件,以配合我需要做这将是

+0

所以,这个问题似乎是该项目的方式。这些人正在创建2个项目。一个是合适的ASP.NET MVC 4 Web项目,另一个是umbraco网站项目。他们把它们混在一起,这一切都很奇怪。有些东西只是不起作用,所以现在我已经清理了它,只使用了umbraco项目并创建了从SurfaceController派生的控制器。我现在可以做一些事情,比如从AJAX到控制器的标注。 –