「UserController」に値を保存しようとしていますが、データベースに保存することができないようです。
UserController に保存されているデータベースの値を取得して、値が送信されてビューが更新されたときに、保存されているように見えるように変更できます。(つまり、テストからテストへの変更)ただし、ページを再度更新するとすぐに以前の値に戻り、データベースはこれを通じて変更を示しません。
ユーザーコントローラー:
var g = httpPost.VanityUrl;
DB.ppUser_editUser(g);
ppUser の ppUser_editUser:
public ppUser ppUser_editUser(string personVanity)
{
ppUser user = SessionUser.LoggedInUser.Person;
user.VanityUrl = personVanity;
BaseDB.SubmitChanges();
return user;
}
EditProfile ビュー:
<div>
@Html.LabelFor(m => m.VanityUrl, "Edit your Custom Url:")
@Html.TextBoxFor(m => m.VanityUrl, new { maxlength = 15 })
</div>
ベースDB:
public partial class StudioKit_MVC3Repository : IDisposable
{
private StudioKit_MVC3ModelsDataContext _BaseDB;
public StudioKit_MVC3ModelsDataContext BaseDB
{
get
{
if (_BaseDB == null)
{
if (StudioKit_MVC3Config.EnvironmentDetail.Name == "Production")
{
_BaseDB = new StudioKit_MVC3ModelsDataContext(StudioKit_MVC3Config.EnvironmentDetail.ConnectionString);
}
else
{
var sqlConnection = new SqlConnection(StudioKit_MVC3Config.EnvironmentDetail.ConnectionString);
var conn = new ProfiledDbConnection(sqlConnection, MiniProfiler.Current);
_BaseDB = new StudioKit_MVC3ModelsDataContext(conn);
}
}
return _BaseDB;
}
}
}
編集:私は問題を理解しました。実際のデータベースではなく、セッション ユーザー インスタンスに値を保存していました。メソッドを削除し、コントローラーに次のように置きました。
ppUser check = DB.ppUser_GetUserByPersonID(model.cskPersonID);
check.VanityUrl = httpPost.VanityUrl;
DB.Save();