编辑用户个人资料详细信息

2024-05-17

如何创建用于编辑用户自定义信息的操作和视图?

授权基于 VS 通过 MVC 4 项目创建的成员资格。

我添加了其他列,例如 FirstName 等。我需要并且注册工作正常,但我不知道如何让此属性显示在视图中@Html.EditorFor并将更改保存在数据库(表 UserProfile)中。

非常感谢您的每一个提示。

为版本创建模型:

public class UserProfileEdit
    {
        [Required]
        [Display(Name = "First name")]
        public string FirstName { get; set; }

        [Required]
        [Display(Name = "Last name")]
        public string LastName { get; set; }

        [Required]
        [Display(Name = "Email")]
        [DataType(DataType.EmailAddress)]
        public string Email { get; set; }
    }

所以您需要一个编辑页面来编辑用户的个人信息。其他列已添加到 UserProfile 表中。

首先,您需要一个用于编辑视图的操作方法。从数据库中获取用户并构建 UserProfileEdit 模型。

public ActionResult Edit()
{
            string username = User.Identity.Name;

            // Fetch the userprofile
            UserProfile user = db.UserProfiles.FirstOrDefault(u => u.UserName.Equals(username));

            // Construct the viewmodel
            UserProfileEdit model = new UserProfileEdit();
            model.FirstName = user.FirstName;
            model.LastName = user.LastName;
            model.Email = user.Email;

            return View(model);
}

当我们发布编辑表单时,我们发布 UserProfileEdit 模型。我们再次从数据库中获取 UserProfile 并更改发布的字段。

    [HttpPost]
    public ActionResult Edit(UserProfileEdit userprofile)
    {
        if (ModelState.IsValid)
        {
            string username = User.Identity.Name;
            // Get the userprofile
            UserProfile user = db.UserProfiles.FirstOrDefault(u => u.UserName.Equals(username));

            // Update fields
            user.FirstName = userprofile.FirstName;
            user.LastName = userprofile.LastName;
            user.Email = userprofile.Email;

            db.Entry(user).State = EntityState.Modified;

            db.SaveChanges();

            return RedirectToAction("Index", "Home"); // or whatever
        }

        return View(userprofile);
    }

现在它只是在你看来编码。我的看起来像这样:

@model UserProfileEdit

@using (Html.BeginForm("Edit", "Account"))
{
    @Html.EditorFor(model => model.FirstName)
     @Html.EditorFor(model => model.LastName)
     @Html.EditorFor(model => model.Email)

    <input type="submit" value="Save" />
}

如果您的编辑模型有大量字段,Automapper 可能会有所帮助。此解决方案编辑当前登录的用户,但添加用户名作为操作参数相当简单。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

编辑用户个人资料详细信息 的相关文章

  • Kendo Grid 内联编辑中的多选列表

    我需要在剑道网格 内联编辑 中使用多选列表 以便用户可以从每行列表中选择多个值 以下是我的要求 显示时 剑道网格应显示所有选定值的逗号分隔列表 添加时 剑道网格应显示多选列表并允许选择多个值 编辑时 剑道网格应显示具有已选择值的多选列表 用
  • PartialView Action 正在调用自身

    我有 MVC 应用程序 它用于从主视图 ProductMaster 将 ProductAreaGrid 列表显示为 PartialView 并且它将在局部视图内将 CreateProductArea 作为 PartialView 我的 Gr
  • 多行有多个提交按钮,我应该为每个按钮制作一个表单吗?

    我列出了大约 20 行 每行代表一个订单 每行需要有 3 个按钮 每个按钮单击将执行不同的操作 我有 3 个操作来处 理每个按钮发布请求 我只是不确定如何为每个按钮设置 Html 表单 tr td td tr
  • 如何将 Ajax.BeginForm MVC 助手与 JSON 结果一起使用?

    我正在尝试使用 ASP NET MVC Ajax BeginForm 帮助程序 但不想在调用完成时使用现有的内容插入选项 相反 我想使用自定义 JavaScript 函数作为回调 这可行 但我想要的结果应该以 JSON 形式返回 不幸的是
  • 返回视图作为 JSON 对象的一部分

    我有一个应用程序只加载一次完整视图 我这样做的原因并不重要 重要的是 其余内容只会以部分视图的形式返回 除了一些内容之外 我还有一些 JSON 对象 我想通过每个 AJAX 请求在服务器之间来回传递 有没有办法返回一个 JSON 对象 并将
  • 如何分配Profile值?

    我不知道我缺少什么 但我在 Web config 文件中添加了 Profile 属性 但无法访问 Profile Item在代码中或创建一个新的配置文件 我今天也遇到了同样的问题 学到了很多东西 Visual Studio 中有两种项目 网
  • 使用 MVC3 根据 Highchart 条形图中的值更改条形颜色

    我正在使用 Dotnet Highchart 和 MVC3 我目前正在使用一个如下所示的图表 我正在尝试修改我的代码 以便我可以根据条形的数量更改条形的颜色 我还想知道如何删除按钮 Snittbetyg 正如您在图像上看到的那样 这是我的代
  • App_Web_XXX.dll 中发生 System.NullReference 异常 - 部分视图中出现错误

    当登陆我的 MVC 页面之一时 我收到此错误 dll 名称中包含随机字符串 类型的第一次机会异常系统 NullReferenceException发生在 App Web cjmhrrqn dll 中 附加信息 未将对象引用设置为对象的实例
  • 在 ASP.NET MVC 中使用 MySQL 的 AccountController

    在 Visual Studio 中创建默认的 ASP NET MVC 项目会设置一个可以在其中注册用户的基本项目 我将如何继续更改它以使用 MySQL 服务器而不是 SQLServer 现在可以使用了 安装最新的 Connector NET
  • MVC3 中定义路由的文件

    我有这个文件
  • ASP.NET MVC - 临时要求除一页之外的整个站点授权的简单方法

    我正在建立一个混合了公共页面和会员专用页面的网站 登录系统按原样工作正常 不过 我想启动一个封闭的 仅限邀请的预览 并暂时要求访问者登录才能执行除欢迎页面之外的所有操作 目前我有 Authorize 某些操作方法的属性 我也可以向其他操作方
  • 为什么这条路线不匹配

    我在获取匹配路线时遇到一些问题 我使用 base 32 编码的 int 作为 Web 应用程序中幻灯片的短链接 每个幻灯片有 5 个不同的版本 我使用首字母来区分每个版本 路由始终匹配 除非 Base 32 编码 int 的第一个字符与指定
  • 盒式捆绑包与 MVC4 捆绑包

    我目前正在开发一个原型 ASP NET MVC 3 解决方案 该解决方案将用作多个项目重写的基础 来自 Web 表单 我的目标之一是跨应用程序实现一些脚本管理 而不是我们目前没有的目标 MVC 3有一个缺陷恕我直言 如果您需要在部分视图或模
  • ASP.NET MVC2:“System.MissingMethodException:没有为此对象定义无参数构造函数。”

    我目前正在尝试修改默认 MVC 项目的注册组件 以适应我的项目 为此 我修改了 RegisterModel Register aspx 和 AccountController 我可以很好地查看寄存器视图 但是当我提交时 我在标题中收到错误
  • 调用泛型类的方法

    这是上下文 我尝试编写一个映射器来动态地将域模型对象转换为 ViewModel 对象 我遇到的问题是 当我尝试通过反射调用泛型类的方法时 出现此错误 System InvalidOperationException 无法对 Contains
  • 如何在VS2010中获取T4来迭代类的属性

    我使用的是 Visual Studio 2010 并且安装了有形的 T4EditorPlusModellingTools 我只是在玩T4 以前从未接触过它 我想做的是查看项目中的一个类 并写出每个属性 谁能给我关于如何构建 tt 文件的绝对
  • EditorFor 的最小值和最大值

    我一直在尝试这段代码来设置我的最小值和最大值EditorFor
  • 选中哪个复选框(控制器)并列出结果

    我是 ASP NET MVC 新手 我正在制作一个在线视频商店应用程序 我有这样的看法 用户可以在其中选择要租借的视频 视图的代码 model IEnumerable
  • 在 asp.net MVC 中使用活动目录进行身份验证

    我想使用活动目录对我的 asp net mvc 项目中的用户进行身份验证 在网上冲浪了几个小时后 我没有找到任何对我有用的东西 我已经看到了所有结果 但什么也没有 我尝试按照许多帖子的建议编辑我的 web config 如果有人可以帮助我提
  • ASP.NET MVC 路由:如何从 URL 中省略“索引”

    我有一个名为 StuffController 的控制器 具有无参数索引操作 我希望从表单中的 URL 调用此操作mysite com stuff 我的控制器定义为 public class StuffController BaseContr

随机推荐

  • Node.js 未处理的“错误”事件

    我编写了一个简单的代码并将其保存在文件 try js 中 var http require http var makeRequest function message var options host localhost port 8080
  • 使用@font-face时浏览器下载什么字体

    font face 有点令人困惑 因为所有浏览器都无法决定使用哪种文件格式 下面是我目前正在使用的向网站添加 1 个新字体的方法 您可以看到有 4 个单独的字体文件 我知道每个文件都是因为某些浏览器支持不同的格式 但浏览器是下载所有文件还是
  • 从 S3 提供 Django 的静态文件和媒体文件

    我遇到了一个奇怪的问题 我不知道是什么原因造成的 这是我当前的配置 使用Heroku MEDIA URL media STATIC URL static STATICFILES DIRS os path join PROJECT DIR s
  • JMenu 中的文本居中

    好吧 我一直在网上寻找有关此问题的帮助 但我尝试的任何方法似乎都不起作用 我想让所有菜单文本都集中在菜单按钮上 当我使用setHorizontalTextPosition JMenu CENTER 没有变化 事实上 无论我使用什么常量 菜单
  • 将 MySQL 结果作为 PHP 数组

    mysql 表 config name config value allow autologin 1 allow md5 0 当前的 php 代码 sth mysql query SELECT rows array while r mysq
  • Ember Data 中出现“超出最大调用堆栈大小”错误的原因可能是什么?

    Ember 发布新版本 3 6 0 后 我开始在控制台中收到错误 rsvp js 24 未捕获 RangeError 超出最大调用堆栈大小 在 WeakMap get 在 getCacheFor metal js 25 在 Computed
  • Inno Setup - 如何在安装过程中读取 INF 文件

    我需要知道如何在安装过程中从 INF 文件 inf 读取值 我希望安装程序检查我要更新的程序的版本 该程序版本不存储在注册表或任何其他文件中 仅存储在 inf 文件中 然后必须从中获取版本 我得到了你的答案 Trama 我无法使用 DLL
  • Python对象初始化性能

    我只是做了一些快速的性能测试 我注意到一般情况下初始化列表比显式初始化列表慢大约四到六倍 这些可能是错误的术语 我不确定这里的行话 例如 gt gt gt import timeit gt gt gt print timeit timeit
  • 无法将小程序(.cap 文件)下载到智能卡中:SW 6D 00(无效指令)

    我正在开发 JCOP3 SecID P60 CS 智能卡 我正在尝试使用下载 cap 文件pyAPDU工具购买 我得到 6D 00回答 无效指令 与 的结果相同gp 请问有人可以告诉我问题出在哪里吗 未给出您用于初始选择颁发者安全域 ISD
  • 如何在html中制作多行类型的文本框?

  • 资产管道:仅对一个控制器使用 javascript 文件

    在 Ruby on Rails v4 中 我希望仅为特定控制器加载一个 js 文件 或一组 js 文件 执行此操作的标准方法是什么 在 application js 中有 require tree 线 我假设这需要删除 所以我并不总是加载每
  • 如何正确更新 Shopware 6 中的插件?

    显然 自动化插件更新存在很大的局限性 Shopware 6 提供了两种自动更新插件的方法 生命周期方法 AND 迁移 不幸的是 这些还不够 这可能是我做错或遗漏的事情 假设我想安装来自第三方的现有插件MyCustomPlugin 该插件当前
  • 带有 RotatingFileHandler 的 Python 3 记录器超出 maxBytes 限制

    我使用以下代码来限制日志文件的大小 最小示例 import logging from logging handlers import RotatingFileHandler Set up logfile and message loggin
  • 如何从字符串中删除所有数字?

    我想删除字符串 0 9 中的所有数字 我写了这段有效的代码 words preg replace 0 words remove numbers words preg replace 1 words remove numbers words
  • AWS S3 公共对象与私有对象?

    回到 S3 我的存储桶中有图像的 URL 我将在我的应用程序中呈现这些图像 但它们被设置为私有 当我尝试单击该链接时 它显示 访问被拒绝 当我将链接的设置更改为公共时 它会通过 但是我读到公共访问并不是最安全的事情 所以这本质上是一个由两部
  • 是否可以使用 Java Guava 将函数应用于集合?

    我想使用 Guava 将函数应用于集合 地图等 基本上 我需要调整 a 的行和列的大小Table分别使所有行和列的大小相同 执行如下操作 Table
  • 当应用程序未运行时,如何在 React Native 应用程序中读取传入的短信?

    有几个可用的 ReactNative 短信插件 但大多数在应用程序位于前台时读取短信 当应用程序甚至没有运行时 我如何读取短信 就像本机短信阅读器应用程序一样 我不知道有任何可用的库 但你可以这样做 创建一个BackgroundScanSe
  • “MyClass”的类型初始值设定项引发异常

    以下是我的Windows服务代码 当我调试代码时 我收到错误 异常 CSMessageUtility CSDetails 的类型初始值设定项引发异常 using System using System Collections Generic
  • 从 DirectionsRenderer 中获取折线或标记的事件

    我正在使用 DirectionsService 和路线方法来生成 DirectionsResult 我还使用 DirectionsRenderer 对象来显示结果 因为它非常易于使用 我在检测 Directions changed 事件时没
  • 编辑用户个人资料详细信息

    如何创建用于编辑用户自定义信息的操作和视图 授权基于 VS 通过 MVC 4 项目创建的成员资格 我添加了其他列 例如 FirstName 等 我需要并且注册工作正常 但我不知道如何让此属性显示在视图中 Html EditorFor并将更改