誰もが! 私はMVCフレームワークに新しいですし、最近になって、私は1つのトラブルに直面している:私は「EditInfo」コントローラ+基本的なロジックを持って が、私は一つのことを理解することはできません -アドレスバー経由でデータを正しく送信できない
ので[HttpGet]
public ActionResult EditPacientInfo(string id)
{
// string username = "[email protected]"; <-- THIS ACTUALLY WORKS
string username = id; // <-- AND THIS NOT + 404-NotFoundError
// Fetch the userprofile
ApplicationUser user = db.Users.FirstOrDefault(u => u.UserName.Equals(username));
// Construct the viewmodel
ApplicationUser model = new ApplicationUser()
{
Email = user.Email,
PacientInfo = user.PacientInfo
};
return View(model);
}
、あなたは私ができる見ることができるように私の問題を解決するために役立つ場合は、Viewコードがあります:私は、私の問題を解決するために役立つ場合、ビューコードがあります:
@foreach (var user in Model.Pacient)
{
<p>
<strong>@user.Username | @ViewBag.Pacient | @Html.ActionLink("Обновить информацию о пациенте ", "EditPacientInfo", "Doctor",new {id = user.Username}) </strong>
</p>
}
これはあなたが本当にここに助けることができるいくつかのコード/ものを追加したり、見つけることができれば素晴らしいことULD(どうもありがとうございました!)
UDPATE 私は、ビューの私のActionLinkの方法(T_Royのおかげで)変更し、私は最終的にできましたアドレスバーにデータを送信しますが、私は新しい問題が発生しました。コントローラの「ユーザー名」フィールドを開始すると、ロジックが機能します。アドレスバーを使用しても起動しません。
コントローラーを作るのに、アクションはGETパラメータを使用しますか? (ここでは+ POSTメソッドをGETです):
[HttpGet]
public ActionResult EditPacientInfo(string id)
{
// string username = "[email protected]"; <-- THIS ACTUALLY WORKS
string username = id.ToString();<-- AND THIS NOT + 404-NotFoundError
// Fetch the userprofile
ApplicationUser user = db.Users.FirstOrDefault(u => u.UserName.Equals(username));
// Construct the viewmodel
ApplicationUser model = new ApplicationUser()
{
Email = user.Email,
PacientInfo = user.PacientInfo
};
return View(model);
}
[HttpPost]
public ActionResult EditPacientInfo(ApplicationUser pacient)
{
if (ModelState.IsValid)
{
string username = User.Identity.Name;
// Get the userprofile
ApplicationUser user = db.Users.FirstOrDefault(u => u.UserName.Equals(username));
// Update fields
user.Email = pacient.Email;
user.PacientInfo = pacient.PacientInfo;
db.Entry(user).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index", "Doctor"); // or whatever
}
return View(pacient);
}
あなたのアクションにブレークポイントを置くと、あなたはそれをヒットしますか?生成されたURL(ブラウザのF12)を表示してください – CodeNotFound
@CodeNotFound、以下のユーザーは既に助けていますが、私はUpdate段落の問題を抱えています。 – clyde
URLを含んでいるアクションリンクの上にマウスでチェックしてください。ブラウザで –