いろいろなチュートリアルを見てみましたが、自分の考えていることをどうやって実行していきたいのか、とても戸惑い、自分の考えを明確にするための助けが必要です。
Profile
;というかみそりのビューページがあります。そのプロフィールページには、4つの異なるセクションがあります。
- パスワードの変更
- セットアップパスワード
- ユーザー名
- バイオグラフィー。
4つのセクションのそれぞれを部分的なセクションとして作成することを考えていました。各セクションには、ユーザーが情報を追加または変更できるようにするテキストボックスと保存ボタンがあります。
@model Projects.Models.PasswordModel
@{
ViewBag.Title = "Profile Account";
}
<hgroup class="title">
<h1>@ViewBag.Title.</h1>
</hgroup>
<p class="message-success">@ViewBag.StatusMessage</p>
<div id="wrap">
<div id="right">
@if (ViewBag.HasLocalPassword)
{
@Html.Partial("_ChangePasswordPartial")
}
else
{
@Html.Partial("_SetPasswordPartial")
}
</div>
<div id="left">
@Html.Partial("_UserNamePartial")
@Html.Partial("_BiographyPartial")
</div>
</div>
メインビューページを適切に設定し、4つのセクションを適切に表示して機能させるにはどうすればよいですか?それらを表示させましたが、ユーザー名に加えた変更を保存しようとすると、別のモデル(伝記モデルなど)でエラーが発生します。繋がっていないはずなのに繋がっているような気がします。私はこれをどうやって行うかについての明確なチュートリアルを本当に探しています、そしてうまくいけば、これを理解した後にそれを作ることができるでしょう。
これは私のユーザー名の一部です
@model Project.Models.UsernameModel
@using (Html.BeginForm("_UsernamePartial", "Account")) {
@Html.AntiForgeryToken()
@Html.ValidationSummary()
<p>Username</p>
@Html.TextBoxFor(m=>m.Username)
<button class="btn btn-small" type="submit" value="Save Username">Save</button>
}
私のコントローラー
得る:
public ActionResult _UsernamePartial()
{
var usernameModel = new UsernameModel();
using (var db = new DataContext())
{
usernameModel.Nickname = (from u in db.Users
where u.ID == WebSecurity.CurrentUserId
select u.Username).FirstOrDefault();
}
return View(usernameModel);
}
役職:
[HttpPost]
public ActionResult _UsernamePartial(UsernameModel usernameModel, string returnUrl)
{
if (ModelState.IsValid)
{
using (var db = new DataContext())
{
User user = db.Users.FirstOrDefault(m => m.ID == WebSecurity.CurrentUserId);
user.Username = usernameModel.Username;
db.SaveChanges();
}
return RedirectToAction("_UsernamePartial");
}
return View(returnUrl);
}
あなたの助けは大歓迎です。