1
我有一個View綁定到包含Products和Contacts的ViewModel。我在該視圖的一部分中顯示 產品並且可以使用。我需要公開聯繫人的數據 定義,所以我可以 接受輸入併發布到聯繫人模型。綁定到ViewModel的視圖不包含某些對象的定義
它首先失敗在該行 @ Html.LabelFor(型號=> model.ContactFName)
錯誤消息:
'ProductPageViewModel' 不包含關於 'ContactFName'
PRODUCTPAGEVIEWMODEL的定義。 CS
public class ProductPageViewModel
{
public IEnumerable<Products> Products { get; set; }
public IEnumerable<Contact> Contacts { get; set; }
public string VmMessage { get; set; }
}
products控制器,索引操作
public ActionResult Index(string product)
{
if (String.IsNullOrEmpty(product))
{
product = "homepage";
}
var products = db.DbProducts.Where(m => m.Category == product);
var contacts = db.DbContacts;
var model = new ViewModel.ProductPageViewModel
{
Contacts = contacts,
Products = products,
};
return View(model);
}
個
產品型號
public class Products
{
[Key]
public int WpId { get; set; }
public string Category { get; set; }
public int CategoryId { get; set; }
public string ProdDescShort { get; set; }
public string ProdDescLong { get; set; }
public string ProductSmall { get; set; }
public string ProductMedium { get; set; }
public string ProductLarge { get; set; }
public decimal? Price1 { get; set; }
}
錄模型
public class Contact
{
public int? ContactId { get; set; }
public string ContactFName { get; set; }
public string ContactLName { get; set; }
public string ContactEmail { get; set; }
public string ContactComments { get; set; }
public string ContactBirthday { get; set; }
public string ContactSource { get; set; }
}
索引視圖
@model JaniesWebLive.ViewModel.ProductPageViewModel
@using (Html.BeginForm("AddItem", "Carts"))
{
foreach (var item in Model.Products)
{
<p><img class="product-image" [email protected](modelItem => item.ProductMedium) /></p>
<h3>@Html.DisplayFor(modelItem => item.WpProductId)</h3>
<h5>@Html.DisplayFor(modelItem => item.Price1)</h5>
<h6>@Html.DisplayFor(modelItem => item.ProdDescShort)</h6>
<p class="text-center">@Html.DisplayFor(modelItem => item.ProdDescLong)</p>
<p>
<button class="text-right btn btn-link js-delete">ADD TO CART</button>
</p>
}
}
@using (Html.BeginForm("SubmitContact", "Products"))
{
<div class="form-group">
@Html.LabelFor(model => model.ContactFName)
@Html.TextBoxFor(model => model.ContactFName, new { @class = "form-control" })
</div>
<div class="form-group">
@Html.LabelFor(model => model.ContactLName)
@Html.TextBoxFor(model => model.ContactLName, new { @class = "form-control" })
</div>
<div class="form-group">
@Html.LabelFor(model => model.ContactEmail)
@Html.TextBoxFor(model => model.ContactEmail, new { @class = "form-control" })
</div>
<div class="form-group">
@Html.LabelFor(model => model.ContactComments)
@Html.TextAreaFor(model => model.ContactComments, new { @class = "form-control", rows = 3 })
</div>
@Html.Hidden("ContactSource", "DealsSignup")
<button type="submit" class="btn btn-primary">Submit</button>
}