0

前面的新手问题:

我应该把我的视图模型声明放在哪里?

我在 Models 文件夹中创建了一个名为“ViewModels.cs”的文件。我创建了一些 View Model 类,包括一个名为 RatingViewModel 的类:

using System;
using System.Collections.Generic;var
using System.Linq;
using System.Web;

namespace Web.Model
{
public class ViewModels
{

    public class RatingViewModel
    {
        public User Rater { get; set; }
        public Rating Rating { get; set; }
    }

}

}V

现在我正在尝试创建一个返回新 RatingViewModel 对象的帮助程序/服务类函数。

我创建了一个“RatingsHelpers.cs”文件。但是当我尝试创建一个新的 RatingViewModel 对象时,它不知道我在说什么。我想不通。我错过了一些参考吗?如何从我的助手/服务类创建/返回一个新的视图模型对象?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Text;
using Web.Model;

namespace System.Web.Mvc
{
    public static class RatingsHelpers
    { 
        public static RatingViewModel functionname()
        { ..... }

但它不知道“RatingViewModel”是什么......!?!?!?

我只知道这应该很明显。

拔我的头发,

约翰尼

4

3 回答 3

2

总结一下:

  1. 您已经在命名空间ViewModels内创建了一个类Web.Model。这个类声明了一个嵌套类,称为RatingViewModel
  2. RatingsHelpers在位于命名空间中的帮助器内,System.Web.Mvc您尝试访问RatingViewModel该类。

您可以通过使用来实现这一点,ViewModels.RatingViewModel但我不建议您这样做。像这样嵌套类是没有意义的。

相反,您可以将每个视图模型类放入一个单独的.cs文件中,并将其直接放入Web.Model命名空间:

namespace Web.Model
{
    public class RatingViewModel
    {
        public User Rater { get; set; }
        public Rating Rating { get; set; }
    }
}

然后在辅助类内部使用可以直接使用RatingViewModel该类。

于 2010-07-25T09:38:37.070 回答
2

问题是您将RatingViewModel类放在 ViewModels 类中,这意味着它是ViewModels. 我不确定这是你想要的行为。如果你想调用一个子类,你必须写ViewModels.RatingViewModel来引用这个类。

于 2010-07-25T05:12:46.900 回答
2

扩展斯克里普尼所说的内容。将 RatingViewModel 类嵌套在 Web.Models 内的 ViewModels 类中似乎是多余的。您可能想要摆脱外部 ViewModels 类。

于 2010-07-25T05:16:23.193 回答