私は、製品と連絡先を含む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; }
}
製品のCONTROLLER、indexアクション
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);
}
の
製品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; }
}
お問い合わせ製品CONTROLLER、indexアクション トライでモデル
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; }
}
INDEXのVIEW
@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>
}