首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVCContrib对象和GridModels

MVCContrib对象和GridModels
EN

Stack Overflow用户
提问于 2011-07-31 10:48:37
回答 1查看 238关注 0票数 1

我相信一定有一种简单的方法可以做到这一点,但我似乎就是想不通。

我正在使用MVCContrib网格控件来显示我正在使用的三层应用程序(ASP.NET MVC3 PL -> BLL -> DAL)中的许多网格。我也在使用Ninject自动注入我所有的依赖项。

我遇到的问题是,我使用网格模型在视图中显示网格,如下所示:

代码语言:javascript
复制
@Html.Grid(Model).WithModel(new UserGridModel(Html)).Attributes(id => tableName)

并定义了相应的网格模型:

代码语言:javascript
复制
public class UserGridModel : GridModel<User> {

    public UserGridModel(HtmlHelper html)
    {
        Dictionary<int, string> userStatuses = /*TODO: GET ALL USER STATUSES*/;            

        Column.For(user => user.ID);
        Column.For(user => html.ActionLink(user.Email, "Edit", new {id = user.ID})).Named(DtoResources.UserDto_Email);
        Column.For(user => user.FirstName);
        Column.For(user => user.LastName);
        Column.For(user => userStatuses[user.StatusID]);
    }
}

现在,我需要将一个服务注入到此模型中,以便它可以从服务(BLL)级别引入所有适用的状态。目前,为了确保这能正常工作,我在引导代码中公开了IKernel,只使用了IKernel.Get(),但我不认为这是获得它的最干净的方法。我会使用构造器注入,但是如果我把IUserStatusService作为参数放在构造器中,我不知道当我在视图中调用新的UserGridModel(超文本标记语言)而没有显式地在视图中使用IKernel时,我如何才能让Ninject注入正确的参数。

我不是遗漏了什么,就是把这一切都弄错了。不管怎样我都被卡住了..。有什么帮助吗?通过Ninject获取服务实例的正确方法是什么

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-01 01:55:15

在我看来,对您的问题最干净的解决方案是更改您的控制器,以便它创建一个已经包含字符串形式的用户状态的模型,这样就不需要在视图中进行任何转换。我会在视图和网格模型中做尽可能少的工作。

另一种可能是将服务属性注入到您的视图中,并将其传递给网格模型。但是,正如我所提到的,您正在向您的视图引入逻辑。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6887242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档