【发布时间】:2019-02-07 02:24:56
【问题描述】:
我刚读到这个Select Tag Helper,如何使用标签助手,之前我问过 onchange 选择标签助手。
但这一次,我需要获取选择标签助手的text。 这是我的模型:
public class Paid__Period {
[Key]
public Int16 ID_Period { get; set; }
public string Period { get; set; }
}
这是我的看法:
<select asp-for="Period" class="form-control input-sm"
asp-items="@(new SelectList (@ViewBag.Period, "ID_Period", "Period"))" onchange="this.form.submit()">
</select>
当它渲染成 HTML 时,它变成了
<select class="form-control input-sm" onchange="this.form.submit()" id="Period" name="Period">
<option value="0">- Choose Period -</option>
<option value="1">2016 - 1 (Jan - Jun)</option>
<option value="2">2017 - 1 (Jan - Jun)</option>
<option value="3">2017 - 2 (Jul - Dec)</option>
<option value="4">2018 - 1 (Jan - Jun)</option>
<option value="5">2018 - 2 (Jul - Dec)</option>
<option value="6">2019 - 1 (Jan - Jun)</option>
<option value="7">2019 - 2 (Jul - Dec)</option>
<option value="8">2020 - 1 (Jan - Jun)</option>
</select>
到这里为止,一切正常。但是每次选择 ID_Period 和 Period: '2020 - 1 (Jan - Jun)' 时,我都需要从视图到操作控制器的返回值。 如何做到这一点?
我只是这样准备我的行动:
[HttpPost]
public IActionResult Paid_Tuition (Paid_Period period) {
}
但 Paid_Period 始终为空。 有什么建议可以解决我上面的问题吗?
【问题讨论】:
-
but Paid_Period is always null.-告诉我你已经尝试过的javascript代码。 -
为什么在更改选定值后将
onchange="this.form.submit()"提交表单?您需要将选定的文本值存储在隐藏字段中,并改用select asp-for="ID_Period"。 -
@TanvirArjel,我不使用任何 javascript。
-
@Daleman
Paid_Tuition (Paid_Period period)是您表单的发布方法吗? -
select asp-for="Period"从一开始似乎就错了。您应该使用 ID 属性来保存整数值,例如select asp-for="ID_Period"并从选定的值中获取选定的选项文本,然后提交表单。
标签: c# asp.net-core asp.net-core-mvc tag-helpers