我有這樣的:編輯userPropfile asp.net mvc4
控制器動作:
public ActionResult Edit(int id = 0)
{
UserProfile user = db.SelectByID(id);
return View(user);
//if (id == null)
//{
// return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
//}
//UserProfile userProfile = db.SelectByID(id);
//if (userProfile == null)
//{
// return HttpNotFound();
//}
//return View(userProfile);
}
模型視圖:
[Table("UserProfile")]
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
}
和視圖:
@model ContosoUniversity.Models.UserProfile
@{
ViewBag.Title = "Edit";
}
<h2>Edit</h2>
@using (Html.BeginForm("Edit","Account"))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Lola Biker</h4>
<hr />
@Html.ValidationSummary(true)
@Html.HiddenFor(model => model.UserId)
<div class="form-group">
@Html.LabelFor(model => model.LastName, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.LastName)
@Html.ValidationMessageFor(model => model.LastName)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.FirstName, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.FirstName)
@Html.ValidationMessageFor(model => model.FirstName)
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Save" class="btn btn-default" />
</div>
</div>
</div>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
這是一個asp.net mvc4應用程序,我想編輯firstName d註冊用戶的姓氏。我爲註冊用戶添加了一些額外的屬性。但是,如果我運行的應用程序,我得到這個錯誤:
Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
Source Error:
Line 221: {
Line 222:
Line 223: UserProfile user = db.SelectByID(id);
Line 224: return View(user);
Line 225: //if (id == null)
Source File: g:\Mijn Documents\My Web Sites\Lolabikes\C#\ContosoUniversity\Controllers\AccountController.cs Line: 223
我登錄,將被重定向到編輯頁面如下:
@if (Request.IsAuthenticated)
{
<text>
Hello, @Html.ActionLink(User.Identity.Name, "Edit", "Account", routeValues: null, htmlAttributes: new { @class = "username", title = "Manage" })!
@using (Html.BeginForm("LogOff", "Account", FormMethod.Post, new { id = "logoutForm" }))
{
@Html.AntiForgeryToken()
<a href="javascript:document.getElementById('logoutForm').submit()">Log off</a>
}
</text>
}
else
{
<ul>
<li>@Html.ActionLink("Register", "Register", "Account", routeValues: null, htmlAttributes: new { id = "registerLink" })</li>
<li>@Html.ActionLink("Log in", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink" })</li>
</ul>
}
謝謝您的幫助
我ALS試過這樣:
public ActionResult Edit(int? id)
{
UserProfile user = db.SelectByID(id);
return View(user);
}
但我仍然得到ID = NULL
我有我的編輯,現在是這樣的:
public ActionResult Edit(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
UserProfile user = db.SelectByID(id);
if (user == null)
{
return HttpNotFound();
}
return View(user);
}
和看法:
@Html.ActionLink(User.Identity.Name, "Edit", "Account", new { userId = 123 }, new { title = "Manage" })
我把斷點這樣的:如果(ID == NULL)
和它說:空= null
我編輯現在是這樣的:
public ActionResult Edit(int?用戶id) {
//if (userId = null)
//{
// return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
//}
UserProfile user = db.SelectByID(userId);
// if (user == null)
// {
// return HttpNotFound();
// }
return View(user);
}
,但用戶是空
所以如果我不喜歡這樣,你有什麼建議:
public ActionResult Edit(int userId)
{
//your code here you get the userId to manipulate.
}
ofcourse我看到那麼空texboxes(名字,姓氏)
好的,我現在是這樣的:
@ Html.ActionL (User.Identity.Name,「Edit」,「Account」,new {Id = Context.User.Identity.Name},new {title =「Manage」})
和一個UserProfile模型,如下所示:
[Table("UserProfile")]
public class UserProfile
{
public int Id { get; set; }
public string UserName { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
//ok
public int MyProperty { get; set; }
}
但我的ID是當然一個整數,也在數據庫中。但這:
Id = Context.User.Identity.Name - Identity.Name - 我只看到名稱 - 這是一個字符串,如何改變?
因爲:UserProfile user = db.SelectByID(Id);仍然是用戶是空的?
謝謝
您是否在發送該用戶的ID? – 2014-10-07 11:51:38
你是什麼意思?我已經編輯我的帖子 – 2014-10-07 11:57:44
顯示代碼在哪裏你點擊「編輯」 – 2014-10-07 12:01:53