2016-04-09 10 views
1

編集画面があり、エラーが表示されます。ユーザーはオブジェクトを編集できますが、外部キーはnullになります。そして、これは大きな問題を引き起こします。それはなぜ外来キーを取得しませんか?ここに私のコードです...MVCで、編集機能が外部キーを紛失しました

最初の関数は完璧ですが、HttpPostを持つものはTcmbCurrencyIdの値を外すため、外来キーです。これをどうすれば解決できますか?

public ActionResult Edit(int? Id) 
    { 
     if (Id == null) 
     { 
      return new HttpStatusCodeResult(HttpStatusCode.BadRequest); 
     } 

     TmcbExchangeRate rate = db.TmcbExchangeRate.Where(x=>x.Id==Id).First(); 

     if (rate == null) 
     { 
      return HttpNotFound(); 
     } 

     return View(rate); 
    } 

    [HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult Edit([Bind(Include = "Id,TcmbCurrencyId,RateDate,ForexBuying,ForexSelling,BanknoteBuying,BanknoteSelling")] TmcbExchangeRate tmcbExchangeRate) 
    { 
     if (ModelState.IsValid) 
     { 
      db.Entry(tmcbExchangeRate).State = EntityState.Modified; 
      db.SaveChanges(); 
      return RedirectToAction("Index"); 
     } 
     return View(tmcbExchangeRate); 
    } 
+1

にフォーム内にこれを追加しますか? '@Html.HiddenFor(model => model.TcmbCurrencyId)'?そうでない場合は、送信時にコントローラに通知されません。フォームに使用されている値のみが送信時にコントローラにポストバックされます。 – Nkosi

答えて

1

あなたのビューのフォームで要求されたプロパティTcmbCurrencyIdを含めていない提出に掲載されることも可能です。そうでない場合は、送信時にコントローラに通知されません。フォームに使用されている値のみが送信時にコントローラに送信されます。元の投稿にビューを含めなかった場合、これは前提です。

あなたは(非表示またはそれ以外)を入力としてビューで `TcmbCurrencyId`含めているビュー

@Html.HiddenFor(model => model.TcmbCurrencyId) 
関連する問題