C# 从视图添加到对象列表
我想做的似乎很简单,但我有点麻烦。我创建了以下类:C# 从视图添加到对象列表,c#,asp.net,.net,asp.net-core,razor,C#,Asp.net,.net,Asp.net Core,Razor,我想做的似乎很简单,但我有点麻烦。我创建了以下类: // SelectedItem.cs public class SelectedItem { public Brand Brand { get; set; } public string Model { get; set; } } 在我的查看页面中,我创建了SelectedItem的列表: // Chart.cshtml @model Prediction.Models.Chart.ManualSelection @{
// SelectedItem.cs
public class SelectedItem
{
public Brand Brand { get; set; }
public string Model { get; set; }
}
在我的查看页面中,我创建了SelectedItem的列表:
// Chart.cshtml
@model Prediction.Models.Chart.ManualSelection
@{
@using Prediction.Models.Chart
List<SelectedItem> selectedItems = new List<SelectedItem>();
}
//Chart.cshtml
@模型预测.模型.图表.手册选择
@{
@使用Prediction.Models.Chart
List selectedItems=新建列表();
}
我正试图从视图中的html添加到这个列表中。我创建了一个表,其中的行由foreach循环填充
// Also Chart.cshtml, below the previous code section where I created the list
<table class="table table-borderless table-hover table-striped table-sm mb-0">
<tbody>
@foreach (var item in Model.PhoneInfo)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Brand)
</td>
<td>
@Html.DisplayFor(modelItem => item.Model)
</td>
<td>
<button type="button" class="btn btn-sm btn-link">Select</button>
</td>
</tr>
}
</tbody>
</table>
//也是Chart.cshtml,位于我创建列表的上一个代码部分下面
@foreach(Model.PhoneInfo中的var项)
{
@DisplayFor(modelItem=>item.Brand)
@DisplayFor(modeleItem=>item.Model)
挑选
}
基本上,我试图做的是,当点击按钮时,我希望将特定的
项目.品牌和项目.型号添加到列表selectedItems
,不幸的是,这是不可能的。与评论中提到的一样,在发送到客户端浏览器之前,此列表仅存在于服务器上的呈现视图范围内。为了保存您的项目.Brand
和项目.Model
,您需要使用JavaScript
,它将在客户端的浏览器中执行,或者您可以将此信息发送回服务器并在那里处理。只有在服务器端呈现视图时,您的列表才存在。呈现页面后发生的任何事情(例如,单击按钮)都发生在客户端。