在ASP.NET MVC视图中访问模型的属性

时间:2015-07-25 17:32:20

标签: c# asp.net-mvc razor

我在访问模型的其中一个属性时遇到问题,我正在传递一个View。

模型的定义如下:

public class ProductBasket
{
    public ProductBasket()
    {
        Products = new List<ProductConfiguration>();
        Errors = new List<string>();
    }
    public List<ProductConfiguration> Products { get; set; }
    public List<string> Errors { get; set; }
}

在我看来,模型指令声明如下:

@model MyApp.ViewModels.Product.ProductBasket

我无法访问Products循环中的foreach属性。在VisualStudio中,当我将Model变量悬停在循环中时,它显示:

List<MyApp.ViewModels.Product.ProductConfiguration> 
WebViewPage<List<MyApp.ViewModels.Product.ProductConfiguration>>.Model { get; }

这是我以前使用的之前的模型 - 我不知道为什么会这样?

我做了什么

Instinct告诉我,我应该可以使用Model.Products访问Products属性(请告诉我这是不正确的),但我不明白为什么视图没有通过ProductBasket

1 个答案:

答案 0 :(得分:2)

看起来您正在将ProductBasket类对象的集合传递给视图。确保从您的操作方法

向您的视图发送public ActionResult Something() { var vm = new ProductBasket(); //The below line is hard coded for demo. You may replace with actual list from db. vm.Products.Add(new ProductConfiguration { Id=1,Name="test"}); return View(vm); } 类的单个对象
ProductConfiguration

假设您的ProductBasket类具有Id和Name属性。

您的观点应该绑定到@model YourNameSpaceHere.ProductBasket <h1>Products</h1> @foreach(var product in Model.Products) { <h2>@product.Name</h2> }

    func findMatchPlease() {
    let matchRequest = GKMatchRequest()
    matchRequest.minPlayers = 2
    matchRequest.maxPlayers = 2


    let mmvc = GKMatchmakerViewController(matchRequest: matchRequest)
    mmvc.matchmakerDelegate = self
    let viewController = self.scene?.view?.window?.rootViewController
    viewController?.presentViewController(mmvc, animated: true, completion: nil)
}




override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {

    for touch in (touches as! Set<UITouch>) {

        var touch: UITouch = touches.first as! UITouch
        var location = touch.locationInNode(self)
        var node = self.nodeAtPoint(location)

        if node.name == "find" {

            var goToMatch = GamePlay(size: self.size)
            var transitionToMatch = SKTransition.fadeWithDuration(1.0)
            goToMatch.scaleMode = SKSceneScaleMode.AspectFill
            self.scene!.view?.presentScene(goToMatch, transition: transitionToMatch)


        findMatchPlease()

        }


    }


}