私はasp.netを使い慣れていませんが、簡単な編集メソッドを作るのはばかげています。私はたくさんのグーグル・グーグルをしましたが、それは助けにはなりませんでした。私はこの問題を認めていましたが、答えは私の場合には関連しませんでした。asp.net投稿の後のヌル?モデルを編集する
私はメソッドを作成して作られましたが、編集方法の間に、フォームからデータを取得した後、属性のすべてが空または0
のいずれかに縫い目私はこの上で二日間過ごし、持ってきました何をすべきかわからない。助けてください。
これらはコントローラの二つの方法
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);
}
[HttpPost]
public IActionResult Edit(Question question)
{
if(question.id == 0)
return HttpNotFound();
// _context.questions.Attach(question);
// _context.Entry(question).State = EntityState.Modified;
// _context.SaveChangesAsync();
return RedirectToAction("Index");
}
あるビューの形態
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Edit</title>
</head>
<body>
<form asp-action="Edit" method="post" >
<div class="form-horizontal">
<h4>Question</h4>
<hr />
<div asp-validation-summary="ValidationSummary.ModelOnly" class="text-danger"></div>
<div class="form-group">
<input asp-for="id" class="form-control" />
</div>
<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">
<label asp-for="answer" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="answer" class="form-control" />
<span asp-validation-for="answer" 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>
<div>
<a asp-action="Index">Back to List</a>
</div>
@section Scripts {
<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script src="~/lib/jquery-validation/dist/jquery.validate.min.js"></script>
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>
}
</body>
</html>
名前空間Daycare.Models {publicクラス質問 {
public Question() {
}
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
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; }
}
}であります
モデルは、Int Idといくつかの文字列属性を持つ非常に単純なものです。
このエラーはなぜ発生していますか教えてください。
質問モデルを表示できますか? – garethb
@garethb質問:フォームだけでなく、あなたのモデルと全体のビューを表示してください。 – Stephen
ブラウザのデベロッパーツールからネットワークを確認し、そのデータが送信されているかどうか、どのように送信されているかを確認してください。 – Spluf