通过 ASP.NET Core 3.1/5.0 MVC 中的脚本使用选定的“'value='”填充数据库
Populate a Datebase with the selected ''value='' through a Script in ASP.NET Core 3.1/5.0 MVC
在我的 View cshtml 文件中,我有一个与此类似的代码:
....
<div class="select">
<select name="slct" id="slct">
<option selected disabled>Select 1</option>
<option value=1>Option 1</option>
<option value=2>Option 2</option>
<option value=3>Option 4</option>
....
</select>
</div>
....
<div class="select">
<select name="slct" id="slct">
<option selected disabled>Select N</option>
<option value=100>Option 100</option>
<option value=101>Option 101</option>
<option value=102>Option 102</option>
....
</select>
</div>
....
基本上是 N 次选择,有 N 种可能的选择。
我想要实现的是,当我在视图中按下一个按钮时,在选择了 N 个选项之后,将一定数量的 N 个表插入到数据库中,我想通过一个脚本来完成这个在 cshtml 文件中代码末尾的类型:
<script src="~/assets/js/jquery.min.js"></script>
<script>
$("something").on('something2', function (e) {
var.........blablablah
});
</script>
我如何制作一个脚本来收集选择中选择的所有值,并通过按钮正确调用它?我应该在视图的控制器中实现什么代码,以便它接收此数据并使用“_context”将其输入数据库?
我创建了一个包含变量“选项”和“日期”的模型,在我的视图中生成了一个界面,允许为特定日期选择其中一个“选项”(每个日期都是 Select),我想要的是,当我按下按钮时,这将插入到模型的数据库 X 表中,并使用我为相应日期选择的“选项”。
我希望我解释得很好,如果不是这样,我提前道歉。我是 ASP dot NET 上编程的新手,我在理解视图代码如何真正与控制器通信时遇到问题,因为我正在使用 Visual Studio 2019 编写我的应用程序,而且大部分代码非常...可以说是自动化的,这让我很困惑。
我的应用程序的真实代码太大而且是私有的,因为是给公司的,所以我没有放它,所以我觉得以这种方式提出我的问题会更好。
编辑:
考虑到模型的代码与此类似。
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;
namespace Appp.Models
{
public class OptionDates
{
[Key]
public int Id { get; set; }
[Required]
public string Option { get; set; }
public DateTime Date { get; set; }
}
What I want to achieve is that when I press a button in the View, after choosing N options
对于此要求,无需使用 jquery,只需使用默认表单提交,如下所示:
<form asp-action="Create">
<div class="select">
<select name="slct" id="slct">
<option selected disabled>Select 1</option>
<option value=1>Option 1</option>
<option value=2>Option 2</option>
<option value=3>Option 3</option>
</select>
</div>
<div class="select">
<select name="slct" id="slct">
<option selected disabled>Select 2</option>
<option value=4>Option 4</option>
<option value=5>Option 5</option>
<option value=6>Option 6</option>
</select>
</div>
<div class="select">
<select name="slct" id="slct">
<option selected disabled>Select 3</option>
<option value=7>Option 7</option>
<option value=8>Option 8</option>
<option value=9>Option 9</option>
</select>
</div>
<input type="submit" value="post" />
</form>
控制器:
[HttpPost]
public IActionResult Create(List<int> slct)
{
return View("Privacy");
}
结果:
更新:
如何使用jquery将选中的值列表传递给后台,可以参考:
<script>
$("input[type=button]").click(function () {
var data = [];
var elems = document.querySelectorAll('#slct');
elems.forEach(function (el) {
data.push(el.options[el.selectedIndex].value)
})
$.ajax({
url: "/Home/Create",
type: "Post",
data: { slct: data }
})
});
</script>
在我的 View cshtml 文件中,我有一个与此类似的代码:
....
<div class="select">
<select name="slct" id="slct">
<option selected disabled>Select 1</option>
<option value=1>Option 1</option>
<option value=2>Option 2</option>
<option value=3>Option 4</option>
....
</select>
</div>
....
<div class="select">
<select name="slct" id="slct">
<option selected disabled>Select N</option>
<option value=100>Option 100</option>
<option value=101>Option 101</option>
<option value=102>Option 102</option>
....
</select>
</div>
....
基本上是 N 次选择,有 N 种可能的选择。
我想要实现的是,当我在视图中按下一个按钮时,在选择了 N 个选项之后,将一定数量的 N 个表插入到数据库中,我想通过一个脚本来完成这个在 cshtml 文件中代码末尾的类型:
<script src="~/assets/js/jquery.min.js"></script>
<script>
$("something").on('something2', function (e) {
var.........blablablah
});
</script>
我如何制作一个脚本来收集选择中选择的所有值,并通过按钮正确调用它?我应该在视图的控制器中实现什么代码,以便它接收此数据并使用“_context”将其输入数据库?
我创建了一个包含变量“选项”和“日期”的模型,在我的视图中生成了一个界面,允许为特定日期选择其中一个“选项”(每个日期都是 Select),我想要的是,当我按下按钮时,这将插入到模型的数据库 X 表中,并使用我为相应日期选择的“选项”。
我希望我解释得很好,如果不是这样,我提前道歉。我是 ASP dot NET 上编程的新手,我在理解视图代码如何真正与控制器通信时遇到问题,因为我正在使用 Visual Studio 2019 编写我的应用程序,而且大部分代码非常...可以说是自动化的,这让我很困惑。
我的应用程序的真实代码太大而且是私有的,因为是给公司的,所以我没有放它,所以我觉得以这种方式提出我的问题会更好。
编辑: 考虑到模型的代码与此类似。
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;
namespace Appp.Models
{
public class OptionDates
{
[Key]
public int Id { get; set; }
[Required]
public string Option { get; set; }
public DateTime Date { get; set; }
}
What I want to achieve is that when I press a button in the View, after choosing N options
对于此要求,无需使用 jquery,只需使用默认表单提交,如下所示:
<form asp-action="Create">
<div class="select">
<select name="slct" id="slct">
<option selected disabled>Select 1</option>
<option value=1>Option 1</option>
<option value=2>Option 2</option>
<option value=3>Option 3</option>
</select>
</div>
<div class="select">
<select name="slct" id="slct">
<option selected disabled>Select 2</option>
<option value=4>Option 4</option>
<option value=5>Option 5</option>
<option value=6>Option 6</option>
</select>
</div>
<div class="select">
<select name="slct" id="slct">
<option selected disabled>Select 3</option>
<option value=7>Option 7</option>
<option value=8>Option 8</option>
<option value=9>Option 9</option>
</select>
</div>
<input type="submit" value="post" />
</form>
控制器:
[HttpPost]
public IActionResult Create(List<int> slct)
{
return View("Privacy");
}
结果:
更新:
如何使用jquery将选中的值列表传递给后台,可以参考:
<script>
$("input[type=button]").click(function () {
var data = [];
var elems = document.querySelectorAll('#slct');
elems.forEach(function (el) {
data.push(el.options[el.selectedIndex].value)
})
$.ajax({
url: "/Home/Create",
type: "Post",
data: { slct: data }
})
});
</script>