在Ember App.js ajax调用中使用razor语法

时间:2013-08-15 20:46:26

标签: javascript asp.net-mvc-4 razor ember.js handlebars.js

我正在尝试编写我的第一个Ember应用,并且根本不确定我在做什么。我在ASP MVC 4项目中执行此操作,我希望能够单击“代理”菜单选项卡,并让Ember从Agent控制器中获取相关信息。

当我认为我已正确设置此设置时,因为当我点击“代理”菜单项时,我收到以下错误:

“加载路线时出错”

同样,这是我第一次尝试Ember,所以我认为这意味着正在尝试ajax调用,所以我已经正确地路由了这个,但Razor语法没有被正确翻译。

App = Ember.Application.create();

App.Store = DS.Store.extend({
    adapter: 'DS.FixtureAdapter'
});

App.Router.map(function () {
    this.resource('home', { path: "/Index" });
    this.resource('agents', { path: "/Agents" });
    this.resource('topics',  function() {
        this.resource('topic', {path: '/topic/:topic_id'})
    });  
    this.resource('contacts', { path: "/Contacts" });
});

App.AgentsRoute = Ember.Route.extend({
    model: function () {
        return App.Store.all();
    }
})

App.Store.reopenClass({
    all: function () {
        return $.ajax({
            type: 'GET',
            data: {id: '1'},
            url: '@Url.Action("GetAgentData", "Agent")',
            sucess: function (data) {
                return data;
            }            
        });
    }
});

修改

此处的每个请求是我layout.cshtml页面中的句柄代码。

                <nav>
                    <script type="text/x-handlebars">
                        <div class="navbar">
                            <div class="navbar-inner">                                
                            <ul id="menu">
                                <li>{{#linkTo 'home'}}Home{{/linkTo}}</li>
                                <li>{{#linkTo 'agents'}}Agents{{/linkTo}}</li>
                                <li>{{#linkTo 'topics'}}About{{/linkTo}}</li>
                                <li>{{#linkTo 'contacts'}}Contact{{/linkTo}}</li>
                            </ul>
                            </div>
                        </div>
                        {{outlet}}
                    </script>
                </nav>

0 个答案:

没有答案