标签: viewmodel

在ASP.NET MVC 2中使用ViewModels - 多种形式

我找不到任何关于在ASP.NET MVC 2 ViewModel方法中使用多个表单的文档.

ie在内置应用程序中,当您选择New MVC2 Web应用程序时,注册页面使用ViewPage,其继承如下:

Inherits="System.Web.Mvc.ViewPage<rs30UserWeb.Models.RegisterModel>"

我想在具有多个表单的页面上使用该方法,但RegisterModel仅支持一个表单.

viewmodel multiple-forms asp.net-mvc-2

2
推荐指数
1
解决办法
1415
查看次数

为什么我使用以下代码获得异常?

我在接口中定义了一个属性:

 Boolean IsBusy { get; }
Run Code Online (Sandbox Code Playgroud)

它在课堂上实现为:

private Boolean _isBusy = false;
public Boolean IsBusy
    {
        get
        {
            return this._isBusy;
        }

        private set
        {
            if (this._isBusy != value)
            {
                this._isBusy = value;
                this.OnPropertyChanged("IsBusy");
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

然后,当我运行应用程序时,在构造函数中检查IsBusy值时,我总是会遇到以下类型的错误:

'IsBusy'抛出了'System.NullReferenceException'类型的异常'bool {System.NullReferenceException}

我无法弄清楚.如果我改变一切Booleanbool,得到同样的错误.

我该如何解决?

c# viewmodel

2
推荐指数
1
解决办法
197
查看次数

在asp.net-mvc中,使用Base ViewModel在Site.Master页面上显示动态内容的最佳方法是什么

我有一个asp.net-mvc网站,我想在每个页面上显示一些信息.我创建了一个名为BaseViewModel的类,每个viewModel类都继承自BaseViewModel.Site.Master视图直接绑定到BaseViewModel.

现在,基类有一个名为MenuLinks的属性.

menulinks属性从数据库调用填充,因此在每个控制器操作上,我正在添加一个新行:ViewModel:

 viewModel.MenuLinks = _repository.GetMenuLinks();
Run Code Online (Sandbox Code Playgroud)

我有很多控制器,动作和视图模型.有没有更清洁的方法,我可以做到上述,而不必将这一行放在每一个控制器动作上面.

c# asp.net-mvc viewmodel

2
推荐指数
1
解决办法
3452
查看次数

如何为时间表设计viewmodel?

我有一个学生的时间表,所以他们可以参加本周的课程.而且我不知道应该如何构建我的ViewModel.

我决定这个:

class CourseTableViewModel
{
    CourseTableHeaderViewModel[] Headers;
    CourseTableRowViewModel[] Rows;
}

class CourseTableRowViewModel
{
    int HourStart;
    CourseTableCellViewModel[] Cells;
}

class CourseTableHeaderViewModel
{
    DateTime Date;
}

class CourseTableCellViewModel
{
    CourseViewModel[] Courses;//null if no course at this time
}
Run Code Online (Sandbox Code Playgroud)

但对我而言,我的视图模型似乎很重要.也许我应该只发送CourseViewModel []然后在我的cshtml上执行所有表/行/单元格工作.

viewmodel应该看起来像我的视图吗?

编辑:我会将我的数据显示为时间表,将星期几作为标题,并在一天的前一小时.如果一个课程需要2个小时,它将占用2行.每个课程的单元格上都会有一个"参加"或"取消"按钮.

PS:我知道jquery fullcalendar,但我只是想学习如何在这里构建我的viewmodel.

viewmodel asp.net-mvc-3

2
推荐指数
1
解决办法
629
查看次数

用于下拉菜单的自动映射IEnumerable <SelectListItem>

问题

我目前正在为我的MVC项目添加自动化,而且我被卡住了.现在我有一个User模型用于表示数据库中的数据.我必须将该模型映射到EditUserModel,这将在调用Edit方法时使用.EditUserModel IEnumerable<SelectListItem>(对于下拉菜单)我似乎无法弄清楚如何映射.

试图解决方案

截至目前,我还没有尝试过任何事情.我不确定在哪里IEnumerable<SelectListItem>或哪里填充它的最佳位置.现在它正在控制器中填充.

User.cs

public class User
{
    [Key]
    public int UserID { get; set; }

    public string Username { get; set; }

    public string Password { get; set; }

    public int RoleID { get; set; }

    [ForeignKey("RoleID")]
    public virtual Role Role { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

EditUserModel.cs

public class EditUserViewModel
{
    [HiddenInput(DisplayValue = false)]
    public int UserID { get; set; }

    [Required]
    public String Username { get; set; }

    [Required]
    [DataType(DataType.Password)]
    public string Password …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-mvc viewmodel automapper

2
推荐指数
1
解决办法
2768
查看次数

后面的视图代码中的DataContext值

在MVVM模式中,可以接受甚至可以在后面的视图代码中访问ViewModel属性吗?

我有一个可观察的集合,它在ViewModel中填充.我需要在视图中使用它来绑定带有链表的无尽的自动收报机.即

    private LinkedList<Border> tickerForex = new LinkedList<Border>();

    public ForexBuy()
    {
        InitializeComponent();
        DataContext = new ForexViewModel();
    }

    private void InitializeForexTicker()
    {
        CanvasForexBuyTicker.Children.Clear();
        foreach (var currency in DataContext.Currencies) //Is this possible/allowable???
        {
           AddTickerItem(currency);
        }

        CanvasForexBuyTicker.Dispatcher.BeginInvoke(DispatcherPriority.Background, new DispatcherOperationCallback(delegate
        { var node = tickerForex.First;

            while (node != null)
            {
                if (node.Previous != null)
                {
                    Canvas.SetLeft(node.Value, Canvas.GetLeft(node.Previous.Value) + node.Previous.Value.ActualWidth + gap);
                }
                else
                {
                    Canvas.SetLeft(node.Value, CanvasForexBuyTicker.Width + gap);
                }

                node = node.Next;
            }

            return null;

        }), null);

}

void AddTickerItem(Currency currency)
    {
        Border border …
Run Code Online (Sandbox Code Playgroud)

c# wpf datacontext viewmodel

2
推荐指数
1
解决办法
3926
查看次数

MVVM主窗口控件与子用户控件的绑定

我是MVVM的新手,现在就完成我的第一个POC。但是,我一直在努力解决一个问题,持续了2天。向你们解释的想法可能会帮助您如此迅速地解决问题。现在让我简要介绍一下我的问题。我有WPF MVVM应用程序,其主视图绑定到MainViewModel。我在这里有Textblock,可以在加载屏幕的同时绑定来自视图模型的某些内容,这真棒。我也有绑定到ChildViewModel的ChildUserControl。现在,我需要在用户控件级别执行的某些操作上,将不同的内容从用户控件绑定到主窗口中的Textblock。怎么可能?

这是我有MainWindow.Xaml的示例代码

<Window.Resources>
    <viewModel:MainViewModel x:Key="mainWindowViewModel"/></Window.Resources>

<TextBlock Name="txtStatus" Text="{Binding StatusMessage, Mode=OneWay }"/>
Run Code Online (Sandbox Code Playgroud)

ChildUserControl.xaml

<UserControl.Resources>
    <viewModel:ChildModelView x:Key="ChildModelView"/> </UserControl.Resources>

public class ChildModelView : BaseViewModel
{
// Some child level logic..
// then need to update the txtStatus text block from parent
}
Run Code Online (Sandbox Code Playgroud)

非常感谢您的帮助。

wpf binding mvvm viewmodel

2
推荐指数
1
解决办法
5892
查看次数

观察RACSequence中的每个项目

我在ParentViewModel上有一个方法,它返回一个ViewModel对象的RACSequence,如下所示:

- (RACSequence *) viewModels
{
    return [self.models.rac_sequence map:^id(Model *model) {
        return [[ViewModel alloc] initWithModel: model];
    }];
}
Run Code Online (Sandbox Code Playgroud)

每个ViewModel都有一个状态属性,其上是一个枚举,有3种状态:NotStarted,InProgress和Completed.当我的序列中的所有ViewModel都具有Completed状态时,我知道ParentViewModel是有效的.我在ParentViewModel上有一个validSignal,我希望从viewModels序列中获得有效的事实.目前我有这个代码:

BOOL valid = [[self viewModels] all:^BOOL(ViewModel *vm) {
        return vm.state == Completed;
    }];
Run Code Online (Sandbox Code Playgroud)

这给了我一个指示,如果序列中的所有ViewModel都是有效的.然后我怎么能把它变成一个RACSignal,它会在每次ViewModel上的state属性发生变化时更新?

objective-c mvvm viewmodel reactive-cocoa

2
推荐指数
1
解决办法
856
查看次数

如何为绑定到viewmodel属性的WPF控件设置动画?

我有一个使用MVVM的WPF应用程序。用户编辑数据时,如果满足某些条件,他们将需要填写修订说明以进行审核。如果他们不需要,我会隐藏修订说明文本框以保持UI清晰。

目前,这是通过将包围文本框(及其标签)的Grid的Visibility属性绑定到viewmodel的bool属性来完成的。当布尔值更改时,版本注释文本框将被隐藏或根据需要显示。

这可以正常工作,但仅显示文本框。我想对其进行动画处理,使其从零高度增加到默认高度或类似的高度。

知道我该怎么做吗?我以前做过动画,但这总是在我手动触发动画时进行。在这种情况下,我想在XAML中声明动画,因此绑定更改时它会自动发生。

有人能指出我正确的方向吗?

wpf animation xaml mvvm viewmodel

2
推荐指数
1
解决办法
1587
查看次数

创建用于导航的ViewModel

我有一个MVC 4应用程序,有几个视图.即产品,食谱,Distrubutors和商店.

每个视图都基于一个模型.

让我们保持简单,并说我所有的控制器都传递类似的视图模型,看起来像我的产品操作:

public ActionResult Index()
{
    return View(db.Ingredients.ToList());
}
Run Code Online (Sandbox Code Playgroud)

好的,这很好,没问题.但是现在我的所有页面都工作了,我想改变我的导航(每个视图有下拉列表)来加载该模型中的项目.

所以我会有4个按钮(产品,食谱,分配器和商店)的导航.

当您翻转每个按钮(假设我们滚动产品按钮)时,下拉列表会列出产品.

要做到这一点,我需要创建一些类型的ViewModel,其中包含所有这四个模型.显然,我不能为每个导航元素剪切出PartialView并使用

@model IEnumerable<GranSabanaUS.Models.Products>
Run Code Online (Sandbox Code Playgroud)

并为该下拉列表重复产品,因为那时导航只能在产品视图中使用,而不能在其他任何地方使用.

(After the solution) AND YES ROWAN你在我创建的导航类型中是正确的,请看这里: 导航我正在创建

navigation partial-views viewmodel asp.net-mvc-4

2
推荐指数
1
解决办法
3849
查看次数