Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET Core 3.0 Razor页面选择帮助程序不发布值_C#_Asp.net_Asp.net Core - Fatal编程技术网

C# ASP.NET Core 3.0 Razor页面选择帮助程序不发布值

C# ASP.NET Core 3.0 Razor页面选择帮助程序不发布值,c#,asp.net,asp.net-core,C#,Asp.net,Asp.net Core,我正在尝试从ASP.NET Core 3.0 Razor Pages页面上的下拉列表中发回所选值。我每次都返回默认值。我看不出我错过了什么 代码如下: 第页: 在表格上呈现为以下内容: <select class="form-control" name="ReportSelect" data-val="true" data-val-required="The SelectedReportId field is required." id="SelectedReportId">

我正在尝试从ASP.NET Core 3.0 Razor Pages页面上的下拉列表中发回所选值。我每次都返回默认值。我看不出我错过了什么

代码如下:

第页:

在表格上呈现为以下内容:

<select class="form-control" name="ReportSelect" data-val="true" data-val-required="The SelectedReportId field is required." id="SelectedReportId">
   <option value="1">All People</option>
   <option value="2">People Starting With T</option>
</select>

所有人
以T开头的人
当我发布这些值时,表单的其余部分会显示出来,但是对于
SelectedReportId
,没有显示任何内容。我尝试将类型更改为string,以防出现问题,但它只是传入null而不是0。我还验证了列表是否正确加载(当然,您可以看到它是通过正确呈现HTML加载的)

我尝试了所有我能想到的配置,但没有成功。我甚至将项目克隆到另一台机器上,只是为了在那里进行测试,但我得到了相同的结果


我正在运行Visual Studio 2019 16.4.0 Preview 1.0,该项目是一个.NET Core 3.0项目。

在尝试将下拉列表绑定到
SelectedReportId
时,您使用的是
ReportSelect
名称,而不指定显式绑定。只需将您的下拉列表名称从
ReportSelect
替换为
SelectedReportId
,即可解决您的问题

<select asp-for="SelectedReportId" class="form-control" name="SelectedReportId"
        asp-items="@(new SelectList(Model.Reports, nameof(ReportsModel.Id),nameof(ReportsModel.ReportName)))">
</select>

希望它能解决您的问题。

在尝试将下拉列表绑定到
SelectedReportId
时,您正在使用
ReportSelect
名称,而不指定显式绑定。只需将您的下拉列表名称从
ReportSelect
替换为
SelectedReportId
,即可解决您的问题

<select asp-for="SelectedReportId" class="form-control" name="SelectedReportId"
        asp-items="@(new SelectList(Model.Reports, nameof(ReportsModel.Id),nameof(ReportsModel.ReportName)))">
</select>

希望它能解决您的问题。

我不确定,但属性名称和select应该相同,对吗?您的
select
似乎被命名为
ReportSelect
,并且支持项目似乎是
SelectedReportId
@MatJ是的,您是正确的。非常感谢。我不确定,但是属性和select的名称应该是相同的,对吗?您的
select
似乎被命名为
ReportSelect
,并且支持项目似乎是
SelectedReportId
@MatJ是的,您是正确的。非常感谢。非常感谢。我在这方面花了太多时间,错过了显而易见的东西。我完全删除了这个名字,解决了这个问题。谢谢!我在这方面花了太多时间,错过了显而易见的东西。我完全删除了这个名字,这就解决了问题。
<select asp-for="SelectedReportId" class="form-control" name="SelectedReportId"
        asp-items="@(new SelectList(Model.Reports, nameof(ReportsModel.Id),nameof(ReportsModel.ReportName)))">
</select>
[BindProperty(Name="ReportSelect")]
public int SelectedReportId { get; set; }