エンティティ・フレームワークで外部キーを使用すると、POSTを実行するときに外部キー・オブジェクトがNULLになります。私はMVC3とEF 4.1を使用しています。商品と商品の詳細が2つあります。私は、RazorビューでHTMLヘルパーを使用してそれらを公開しています。 GETが発生すると、製品の詳細が表示されます。しかし、フォームを送信してサーバーに投稿すると、商品詳細コレクションはnullになります。私はすべての変更を失う。EF4.1 MVC3での外部キーテーブルの更新。 POSTでオブジェクトがnullです
私が間違っていることは何ですか?
ありがとうございました!
コード(それはかなり長いですので、私はそれを短縮):
データベース:
Table Product
{
int Id
varchar Name
}
Table ProductDetails
{
int id,
int ProductId, <- foreign key SQL 2008 to Product Table
varchar Details
}
View:
@model WebSite.Models.Product
@{
ViewBag.Title = "MyLifeSaverStoreInfo";
}
@Html.TextBoxFor(m => m.Product.Name)
@Html.TextBoxFor(m => m.Product.ProductDetails.FirstOrDefault().Description)
Controller:
public ActionResult EditProduct(int productId)
{
var Product = _productRepository.GetProduct(productId);
return View(product);
}
[HttpPost]
public ActionResult EditProduct(Product model)
{
string name = model.Name; <- this update comes through
string description = model.ProductDetails.FirstorDefault().Description;
}
おかげ
この質問を書いたとき、あなたがこれまでに持っていたコードの一部を投稿することは重要ではないと思われましたか?私が質問をしていたなら、私はこれまでに試したコードを提供しているはずです。問題を再現するための完全なシナリオ(モデル、コントローラ、ビュー)を提供できれば最適です。 –
投稿を更新しました。ありがとう –