【发布时间】:2018-03-08 14:58:44
【问题描述】:
这是我的看法
<div class="form-group">
<label asp-for="Product.InStock">Available:</label>
<select class="form-control" id="Product.InStock">
<option value="False">No</option>
<option value="True">Yes</option>
</select>
</div>
这是模型 Product.cs
[Required]
[Display(Name = "Available")]
public bool InStock { get; set; }
问题是发送到控制器方法的值总是假的,即使我选择“是”选项。
【问题讨论】:
-
您没有为您的控件设置“名称”值,因此它永远不会被回发。可能您最好使用 asp-for 助手来正确设置值,就像您为标签所做的那样。
-
如何发送给控制器?阿贾克斯?邮寄表格?我在该输入上没有看到
name属性,因此它不会发布它。 -
你有一个 id,但在 select 元素上没有名字。模型绑定器使用名称属性
-
@Fran 小点,但从技术上讲,模型绑定器处理在 HTTP 请求中提交的参数。它是浏览器在解析使用 name 属性的表单时用来决定发送哪些参数的机制。请求中参数的内容仍然可以通过脚本进行更改。或者,请求可以由非浏览器客户端提交,那么具有“名称”属性的表单元素的概念是完全多余的,但如果 HTTP 请求中的数据正确,模型绑定器仍然会绑定它。跨度>
-
我正在使用form method="post",有谁能告诉我如何使用这个“name”属性吗?
标签: c# asp.net asp.net-mvc asp.net-core