将javascript创建的复选框传递给控制器 以保存到表格?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将javascript创建的复选框传递给控制器 以保存到表格?相关的知识,希望对你有一定的参考价值。
我有从谷歌地图搜索结果动态创建的复选框。我希望能够将这些文件传递给控制器,以便将它们添加到数据库中,然后再查询。
现在我有一个用户搜索城市的视图,输入被发送回控制器以呈现新视图以填充附近位置的谷歌地图。附近的位置使用javascript作为复选框动态添加到<div>
。
我试图将复选框作为字符串数组和模型类的数组传递。我只使用string []在控制器中收到结果,但是我无法将它们保存到数据库中。
[HttpPost]
public IActionResult Itinerary(string[] destination)
{
foreach (var item in destination)
{
_context.Itinerary.Add(item); // error: '"Argument 1: Cannot convert from 'string ' to NameSpace.Model.Itinerary"
}
_context.SaveChanges();
return View();
}
Javascript复选框
function createMarkers(places) {
var bounds = new google.maps.LatLngBounds();
var placesList = document.getElementById('places');
for (var i = 0, place; place = places[i]; i++) {
var image = {
url: place.icon,
size: new google.maps.Size(71, 71),
origin: new google.maps.Point(0, 0),
anchor: new google.maps.Point(17, 34),
scaledSize: new google.maps.Size(25, 25)
};
var marker = new google.maps.Marker({
map: map,
icon: image,
title: place.name,
animation: google.maps.Animation.DROP,
position: place.geometry.location
});
var checkbox = document.createElement('input');
checkbox.type = "checkbox";
checkbox.name = "destination";
checkbox.value = place.name;
checkbox.id = "id";
checkbox.setAttribute("asp-for","LocationName");
var label = document.createElement('label')
label.htmlFor = "id";
label.appendChild(document.createTextNode(place.name));
placesList.appendChild(label);
placesList.appendChild(checkbox);
表格过帐复选框返回控制器
@using (Html.BeginForm("Itinerary", "Itinerary", FormMethod.Post))
{
<div multiple id="places" > </div>
<button id="more">More results</button>
<input type="submit" value="Finished"/>
}
答案
正如您所指出的那样,错误就在这一行:
_context.Itinerary.Add(item); // error: '"Argument 1: Cannot convert from 'string ' to NameSpace.Model.Itinerary"
你需要创建一个Itinerary
:
_context.Itinerary.Add(new Itinerary { Destination = item });
以上是关于将javascript创建的复选框传递给控制器 以保存到表格?的主要内容,如果未能解决你的问题,请参考以下文章
通过 knockout.js 将选中的复选框值传递给 javascript
在创建 onchange 的 javascript 中传递两个变量