ユーザーが目的のユーザー名を入力して保存できるテキストボックスがあります。ユーザーがそれを保存し、たまたまプロファイル ページに再度アクセスすると、表示するために最後に保存したユーザー名がテキスト ボックスに入力され、ユーザーはそれを変更して再保存することができます。私はこれにかなり慣れていないので、これを適切に開始する方法がわかりません。vs 2012 asp.net mvc 4 c# を使用しています。これまでの私のコードは次のとおりです。
@model School.Models.StudentNameModel
@using (Html.BeginForm("_StudentNamePartial", "Profile")) {
@Html.AntiForgeryToken()
@Html.ValidationSummary()
<fieldset>
<ol>
<li>
@Html.LabelFor(m => m.StudentName)
@Html.DisplayFor(m => m.StudentName)
@Html.TextBoxFor(m=>m.StudentName)
<button type="button" value="save" />
</li>
</ol>
</fieldset>
}
これは私のモデルです:
public class StudentNameModel
{
[Display(Name = "Student Name")]
public string StudentName{ get; set; }
}
私のコントローラー:
GET - データベースが存在する場合、データベースから学生の名前を取得します。
[HttpPost]
public ActionResult _StudentNamePartial(int id)
{
id = WebSecurity.CurrentStudentId;
var model = new StudentNameModel();
using (var db = new StudentsDataContext())
{
var result = (from u in db.Students
where u.ID == id
select u.StudentName).FirstOrDefault();
if(result != null)
model.StudentName= result;
}
return View(model);
}
POST - これは、学生の新しいユーザー名を保存する場所です
[HttpPost]
public ActionResult _StudentNamePartial(StudentNameModel model)
{
if (ModelState.IsValid)
{
using (var db = new StudentDataContext())
{
try
{
}
catch (Exception)
{
throw;
}
}
return RedirectToAction("ProfileAccount");
}
return View(model);
}
また、ユーザー名を表示しているときにメソッドにヒットせずAction
、オブジェクト参照がnullであると常に報告されるという問題があります。どんな助けでも素晴らしいでしょう。ありがとう