最後に弱いAsp.netを学習し始めましたが(以前の経験はありませんでしたが、データベースレコードを更新する際に問題がありました) 。Entity FrameWorkを使用してレコードを更新する。更新時の新しいレコード
似たような質問が1つしかありませんでしたが(How to update record using Entity Framework 7?)、フォームやコントローラは使用されていませんでしたので、あまり役に立ちませんでした。
私はオブジェクトに
namespace Daycare.Models
{
public class Question
{
public Question() {
}
public int id { get; set; }
public string title { get;set;}
public string question { get; set; }
public string answer { get; set; }
public DateTime date { get; set; }
}
}
コントローラを有し、ビューが自動的に生成されました。
削除と作成はうまく動作しますが、編集メソッドは新しい空のオブジェクトのみを作成します。
public IActionResult Edit(int? id)
{
if (id == null)
{
return HttpNotFound();
}
Question question = _context.questions.Single(m => m.id == id);
if (question == null)
{
return HttpNotFound();
}
return View(question);
}
// POST: Questions/Edit/5
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Edit(Question question)
{
if (ModelState.IsValid)
{
//stuff i've tried.
// _context.questions.Update(question);
_context.Update(question);
// _context.Entry(question).State = EntityState.Modified;
_context.SaveChanges();
return RedirectToAction("Index");
}
return View(question);
}
これは、私は非常に任意のヘルプをお願い申し上げフォーム
<form asp-action="Edit">
<div class="form-horizontal">
<h4>Question</h4>
<hr />
<div asp-validation-summary="ValidationSummary.ModelOnly" class="text-danger"></div>
<input type="hidden" asp-for="id" />
<div class="form-group">
<label asp-for="question" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="question" class="form-control" />
<span asp-validation-for="question" class="text-danger" />
</div>
</div>
<div class="form-group">
<label asp-for="title" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="title" class="form-control" />
<span asp-validation-for="title" class="text-danger" />
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Save" class="btn btn-default" />
</div>
</div>
</div>
</form>
です。
事前に大変感謝しています。
「質問qを呼び出す)(修正されたオブジェクトをマークする行に
この行力エンティティフレームワークのコメントを解除してみてのSaveChanges中にオブジェクトのupdateコマンドを実行します=新しい質問(); int b =整数(question.id); int _a = 5007; q.id = _a; _context.questions.Attach(question); _context.Entry(質問).State = EntityState.Modified; _context.SaveChangesAsync(); ' これは動作しているようですが、エラーが発生します。 _a = question.id – Greenmachine