0

0

构建简历数据并使用 JavaScript 发送到 ASP.NET MVC 服务器

霞舞

霞舞

发布时间:2025-10-11 10:26:15

|

569人浏览过

|

来源于php中文网

原创

构建简历数据并使用 javascript 发送到 asp.net mvc 服务器

本文将详细介绍如何使用 JavaScript 从包含多个工作经历和教育经历模块的表单中收集数据,并将其以 JSON 格式发送到 ASP.NET MVC 服务器。我们将重点讲解如何遍历表单模块,提取数据,构建 JSON 对象,以及使用 AJAX 将数据发送到服务器端。

前端数据收集与处理

首先,我们需要使用 JavaScript 从 HTML 表单中收集数据。假设你的 HTML 结构中,工作经历和教育经历分别由 .work-experience-module 和 .education-module 类名的元素包裹。每个模块内部包含多个 input 元素,用于输入公司名称、职位、职责、开始日期、结束日期等信息。

以下是一个示例 JavaScript 代码片段,用于遍历这些模块并提取数据:

// 初始化数据对象
let data = {
    WorkExperiences: [],
    Educations: []
};

// Сбор данных из модулей опыта работы
$('.work-experience-module').each(function () {
    let workExperience = {
        companyName: $(this).find('input[name="company"]').val(),
        position: $(this).find('input[name="position"]').val(),
        responsibilities: $(this).find('input[name="responsibilities"]').val(),
        workExperienceStartDate: $(this).find('input[name="workExperienceStartDate"]').val(),
        workExperienceEndDate: $(this).find('input[name="workExperienceEndDate"]').val()
    };
    data.WorkExperiences.push(workExperience);
});

// Сбор данных из модулей образования
$('.education-module').each(function () {
    let education = {
        InstitutionName: $(this).find('input[name="educationInstitution"]').val(),
        Degree: $(this).find('input[name="educationDegree"]').val(),
        GraduationDate: $(this).find('input[name="educationGraduationDate"]').val()
    };
    data.Educations.push(education);
});

// 将数据转换为 JSON 字符串
let jsonData = JSON.stringify(data);

// 将 JSON 数据放入隐藏字段中
$('#resumeData').val(jsonData);

// 提交表单
$('form').submit();

代码解释:

AOXO_CMS建站系统企业通用版1.0
AOXO_CMS建站系统企业通用版1.0

一个功能强大、性能卓越的企业建站系统。使用静态网页技术大大减轻了服务器负担、加快网页的显示速度、提高搜索引擎推广效果。本系统的特点自定义模块多样化、速度快、占用服务器资源小、扩展性强,能方便快捷地建立您的企业展示平台。简便高效的管理操作从用户使用的角度考虑,对功能的操作方便性进行了设计改造。使用户管理的工作量减小。网站互动数据可导出Word文档,邮件同步发送功能可将互动信息推送到指定邮箱,加快企业

下载

立即学习Java免费学习笔记(深入)”;

  1. 初始化数据对象: 创建一个 JavaScript 对象 data,包含两个数组 WorkExperiences 和 Educations,用于存储工作经历和教育经历的数据。
  2. 遍历工作经历模块: 使用 jQuery 的 .each() 方法遍历所有类名为 .work-experience-module 的元素。
  3. 提取工作经历数据: 在每个模块内部,使用 $(this).find() 方法查找对应的 input 元素,并使用 .val() 方法获取其值。将这些值存储在一个 workExperience 对象中。
  4. 添加到工作经历数组: 将 workExperience 对象添加到 data.WorkExperiences 数组中。
  5. 遍历教育经历模块: 与工作经历类似,遍历所有类名为 .education-module 的元素,提取教育经历数据,并存储在 data.Educations 数组中。
  6. 转换为 JSON 字符串: 使用 JSON.stringify() 方法将 JavaScript 对象 data 转换为 JSON 字符串。
  7. 放入隐藏字段: 将 JSON 字符串赋值给一个隐藏的 input 元素 (#resumeData) 的 value 属性。
  8. 提交表单: 提交包含隐藏字段的表单。

注意事项:

  • 确保你的 HTML 结构与代码中的选择器(.work-experience-module, .education-module, input[name="company"] 等)匹配。
  • 使用 jQuery 或其他 JavaScript 库来简化 DOM 操作。
  • 对用户输入进行验证,以确保数据的完整性和安全性。

使用 AJAX 发送数据到服务器

除了将 JSON 数据放入隐藏字段并提交表单外,还可以使用 AJAX 直接将数据发送到服务器。 这种方式更加灵活,可以实现异步提交,避免页面刷新。

以下是使用 AJAX 发送数据的示例代码:

// 初始化数据对象
let data = {
    WorkExperiences: [],
    Educations: []
};

// Сбор данных из модулей опыта работы
$('.work-experience-module').each(function () {
    let workExperience = {
        companyName: $(this).find('input[name="company"]').val(),
        position: $(this).find('input[name="position"]').val(),
        responsibilities: $(this).find('input[name="responsibilities"]').val(),
        workExperienceStartDate: $(this).find('input[name="workExperienceStartDate"]').val(),
        workExperienceEndDate: $(this).find('input[name="workExperienceEndDate"]').val()
    };
    data.WorkExperiences.push(workExperience);
});

// Сбор данных из модулей образования
$('.education-module').each(function () {
    let education = {
        InstitutionName: $(this).find('input[name="educationInstitution"]').val(),
        Degree: $(this).find('input[name="educationDegree"]').val(),
        GraduationDate: $(this).find('input[name="educationGraduationDate"]').val()
    };
    data.Educations.push(education);
});

// 使用 AJAX 发送数据
$.ajax({
    url: '/Resume/SaveResumeData', // 替换为你的 ASP.NET MVC 控制器 Action 地址
    type: 'POST',
    contentType: 'application/json; charset=utf-8',
    data: JSON.stringify(data),
    dataType: 'json',
    success: function (response) {
        // 处理服务器返回的成功响应
        console.log('数据发送成功', response);
        alert('简历数据已成功保存!');
    },
    error: function (error) {
        // 处理错误
        console.error('数据发送失败', error);
        alert('简历数据保存失败!');
    }
});

代码解释:

立即学习Java免费学习笔记(深入)”;

  1. $.ajax() 函数: 使用 jQuery 的 $.ajax() 函数发送 AJAX 请求。
  2. url: 指定请求的 URL,替换为你的 ASP.NET MVC 控制器 Action 地址。
  3. type: 指定请求类型为 POST。
  4. contentType: 设置请求的 Content-Type 为 application/json; charset=utf-8,告诉服务器发送的是 JSON 数据。
  5. data: 将 JavaScript 对象 data 转换为 JSON 字符串,作为请求的主体发送到服务器。
  6. dataType: 指定期望服务器返回的数据类型为 json
  7. success: 定义请求成功时的回调函数,处理服务器返回的响应。
  8. error: 定义请求失败时的回调函数,处理错误。

注意事项:

  • 确保你已经引入了 jQuery 库。
  • 替换 url 为你实际的 ASP.NET MVC 控制器 Action 地址。
  • 根据服务器返回的数据格式,调整 dataType 和 success 回调函数中的处理逻辑。
  • 添加适当的错误处理机制,以便在请求失败时能够通知用户。

ASP.NET MVC 后端处理

在 ASP.NET MVC 控制器中,你需要创建一个 Action 来接收并处理前端发送的 JSON 数据。

以下是一个示例 Action:

using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using System.Collections.Generic;

public class ResumeController : Controller
{
    [HttpPost]
    public IActionResult SaveResumeData([FromBody] ResumeData data)
    {
        // 在这里处理接收到的简历数据
        // 例如,保存到数据库或进行其他操作

        // 可以使用 data.WorkExperiences 和 data.Educations 访问数据
        foreach (var experience in data.WorkExperiences)
        {
            Console.WriteLine($"Company: {experience.CompanyName}, Position: {experience.Position}");
        }

        foreach (var education in data.Educations)
        {
            Console.WriteLine($"Institution: {education.InstitutionName}, Degree: {education.Degree}");
        }

        // 返回成功响应
        return Json(new { success = true, message = "简历数据已成功保存!" });
    }
}

public class ResumeData
{
    public List<WorkExperience> WorkExperiences { get; set; }
    public List<Education> Educations { get; set; }
}

public class WorkExperience
{
    public string CompanyName { get; set; }
    public string Position { get; set; }
    public string Responsibilities { get; set; }
    public string WorkExperienceStartDate { get; set; }
    public string WorkExperienceEndDate { get; set; }
}

public class Education
{
    public string InstitutionName { get; set; }
    public string Degree { get; set; }
    public string GraduationDate { get; set; }
}

代码解释:

立即学习Java免费学习笔记(深入)”;

  1. [HttpPost] 特性: 指定该 Action 只能通过 HTTP POST 请求访问。
  2. [FromBody] 特性: 告诉 ASP.NET MVC 框架从请求的主体中读取 JSON 数据,并将其绑定到 ResumeData 对象。
  3. ResumeData 类: 定义一个 ResumeData 类,包含 WorkExperiences 和 Educations 两个属性,分别表示工作经历和教育经历的列表。
  4. WorkExperience 和 Education 类: 定义 WorkExperience 和 Education 类,分别表示单个工作经历和教育经历的数据结构。
  5. 数据处理: 在 Action 内部,你可以访问 data.WorkExperiences 和 data.Educations 属性,并对接收到的数据进行处理,例如保存到数据库或进行其他操作。
  6. 返回响应: 使用 Json() 方法返回一个 JSON 格式的响应,包含 success 和 message 字段,用于告知前端请求是否成功。

注意事项:

  • 确保你已经安装了 Microsoft.AspNetCore.Mvc 和 Newtonsoft.Json NuGet 包。
  • 根据你的实际需求,调整 ResumeData、WorkExperience 和 Education 类的属性。
  • 添加适当的错误处理机制,以便在数据处理过程中发生错误时能够返回错误信息。
  • 使用合适的 ORM 框架(例如 Entity Framework Core)来简化数据库操作。

总结

通过以上步骤,你可以构建一个完整的简历数据收集和提交流程,从前端表单收集数据,将其转换为 JSON 格式,然后使用 AJAX 或隐藏字段提交到 ASP.NET MVC 服务器进行处理。 务必注意数据验证和安全性,并根据实际需求进行调整和优化。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

455

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

546

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

335

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

82

2025.09.10

jquery插件有哪些
jquery插件有哪些

jquery插件有jQuery UI、jQuery Validate、jQuery DataTables、jQuery Slick、jQuery LazyLoad、jQuery Countdown、jQuery Lightbox、jQuery FullCalendar、jQuery Chosen和jQuery EasyUI等。本专题为大家提供jquery插件相关的文章、下载、课程内容,供大家免费下载体验。

156

2023.09.12

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

335

2023.10.13

jquery删除元素的方法
jquery删除元素的方法

jquery可以通过.remove() 方法、 .detach() 方法、.empty() 方法、.unwrap() 方法、.replaceWith() 方法、.html('') 方法和.hide() 方法来删除元素。更多关于jquery相关的问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

406

2023.11.10

jQuery hover()方法的使用
jQuery hover()方法的使用

hover()是jQuery中一个常用的方法,它用于绑定两个事件处理函数,这两个函数将在鼠标指针进入和离开匹配的元素时执行。想了解更多hover()的相关内容,可以阅读本专题下面的文章。

515

2023.12.04

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

76

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 教程
React 教程

共58课时 | 6万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 3.4万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号