Profile Model
特定のプロパティ値を格納する を作成しました。firstName、lastName など... など... などstate
はその 1 つです。
forプロパティに置き換えたときに問題が発生しましたTextBox
。これは、私が でメソッドを作成した方法です。DropDownList
State
Edit
ProfileController
アプリを開くと、既存の値があれば入力されます。Profile
最初の問題は、ドロップダウンから選択した値を取得する方法で、このメソッドで行ったようにプロパティに渡すことができます。
public ActionResult Edit(string username)
{
ViewBag.StateID = new SelectList(db.States, "StateID", "StateName");
ProfileBase _userProfile = ProfileBase.Create(username);
ProfileModel _profile = new ProfileModel();
System.Web.HttpContext.Current.Session["_userName"] = username;
if (_userProfile.LastUpdatedDate > DateTime.MinValue)
{
_profile.FirstName = Convert.ToString(_userProfile.GetPropertyValue("FirstName"));
_profile.LastName = Convert.ToString(_userProfile.GetPropertyValue("LastName"));
_profile.Address = Convert.ToString(_userProfile.GetPropertyValue("Address"));
_profile.City = Convert.ToString(_userProfile.GetPropertyValue("City"));
_profile.State = Convert.ToString(_userProfile.GetPropertyValue("State"));
_profile.Zip = Convert.ToString(_userProfile.GetPropertyValue("Zip"));
}
return View(_profile);
}
State
これは、文字列が に渡され、 post メソッドTextBox
で保存された場合にうまく機能しました。Edit
[HttpPost]
public ActionResult Edit(ProfileModel model)
{
if (ModelState.IsValid)
{
ProfileBase profile = ProfileBase.Create(System.Web.HttpContext.Current.Session["_userName"].ToString(), true);
if (profile != null)
{
profile.SetPropertyValue("FirstName", model.FirstName);
profile.SetPropertyValue("LastName", model.LastName);
profile.SetPropertyValue("Address", model.Address);
profile.SetPropertyValue("City", model.City);
profile.SetPropertyValue("State", model.State);
profile.SetPropertyValue("Zip", model.Zip);
profile.Save();
}
else
{
ModelState.AddModelError("", "Error writing to Profile");
}
}
return RedirectToAction("Index");
}
これは、ドロップダウンを作成した方法ですState
。
モデル:
public class State
{
public int StateID { get; set; }
public string StateName { get; set; }
public IEnumerable<RegisterModel> RegModel { get; set; }
public IEnumerable<ProfileModel> Profiles { get; set; }
}
コントローラ:
ViewBag.StateID = new SelectList(db.States, "StateID", "StateName");
意見:
@Html.DropDownList("StateID", (SelectList)ViewBag.StateID, new { @class = "dropdown" })
私はいくつかのことを試しました。これまでのところ運がありません。何が足りないの?!