Я строю веб-сайт структуры сущностей Model-View-Controller в c #.У меня есть страница профиля, которая отображает информацию о пользователе.Я хочу, чтобы пользователь мог редактировать информацию своего профиля, не переходя на совершенно другую страницу.
Например: в профиле, где написано «Профиль Джона», я хочу иметь возможность щелкнуть крошечную кнопку редактирования имени под текстом «Профиль Джона», которая превращает поле метки в редактируемую текстовую форму.Я хочу, чтобы это было сделано с той же страницы, не покидая страницу профиля.
Есть идеи, как мне это сделать?
Вот моя разметка:
@using testproject.Models;
@using Microsoft.AspNet.Identity;
@{
dynamic student;
string userID = User.Identity.GetUserId().ToString();
using (var context = new ApplicationDbContext())
{
var query = from st in context.Profiles
where st.UserId == userID
select st;
student = query.FirstOrDefault<Profile>();
}
}
@{
ViewBag.Title = "Profile Page";
}
<div class="jumbotron">
<h1>ASP.NET</h1>
</div>
<div class="row">
<h1> @student.FirstMidName @student.LastName 's Profile</h1>
</div>
Вот моя модель:
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
namespace testproject.Models
{
public class Profile
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
public string UserId { get; set; }
public string LastName { get; set; }
public string FirstMidName { get; set; }
public DateTime EnrollmentDate { get; set; }
public string Bio { get; set; }
}
}
Вот мой контроллер:
using Microsoft.AspNet.Identity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using testproject.Models;
namespace testproject.Controllers
{
public class PageController : Controller
{
// GET: Page
public ActionResult Index()
{
Profile profile = new Profile();
string userID = User.Identity.GetUserId().ToString();
using (var context = new ApplicationDbContext())
{
var query = from st in context.Profiles
where st.UserId == userID
select st;
var student = query.FirstOrDefault<Profile>();
var name = student.FirstMidName;
}
return View();
}
}
}
В настоящее время я могу редактировать профиль только из автоматически сгенерированных скаффолдингов, созданных Visual Studio длямой профиль.