Asp.Net Mvc 5 Uppdatera användardata
Jag har lagt till BirthDate, FullName och Country då man registrerar sig på sidan, det funkar och lagras i databasen som det ska, nu vill jag ge användarna möjlighet att ändra viss data men får det inte riktigt att fungera, nån som kan peka mig i rätt riktning?
CS1501 no overload for method 'GetUserId' takes 1 argument får jag med denna koden i ManageController när jag gör en build
ManageController:
public ActionResult SetCountry()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> SetCountry(SetCountryViewModel model)
{
if (!ModelState.IsValid)
{
return RedirectToAction("SetCountry", "Manage");
}
var user = await User.Identity.GetUserId(model.Country);
if (user != null)
{
var result = await UserManager.UpdateAsync(user);
if (result.Succeeded)
{
result = await UserManager.UpdateAsync(user);
}
}
return RedirectToAction("Index", "Manage");
}
SetCountry.cshtml
@model SampleProject.Models.SetCountryViewModel
@{
ViewBag.Title = "Change Country";
}
<h2>@ViewBag.Title.</h2>
<p class="text-info">
Here you can change your Country.
</p>
@using (Html.BeginForm("SetCountry", "Manage", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary("", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(m => m.Country, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.Country, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="OK" class="btn btn-default" />
</div>
</div>
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
SetCountryViewModel inuti ManageViewModels:
public class SetCountryViewModel
{
[Required]
[Display(Name = "Country")]
public string Country { get; set; }
}
har också prova ManageController:
public ActionResult SetCountry()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> SetCountry(SetCountryViewModel model)
{
if (ModelState.IsValid)
{
var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());
if (user != null)
{
await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);
}
return RedirectToAction("Index", new {Message = "Success"});
}
return View(model);
}
är jag ens på rätt spår?
Citera om du vill ha svar :)