[英]How textbox values are available in controller action method without model binding?
Html.TextBox
是一个扩展,它仍然创建一个输入元素,其name
属性与作为参数InputExtensions.TextBox传递给方法的字符串匹配。 由于包含在表单中,因此需要将name
属性与端点参数属性名称进行匹配。 因为在您的情况下, name
属性等于模型的属性名称,并且该方法通过将值传递回控制器的表单正确调用。
所有Html
辅助方法所做的就是将您的 Razor 转换为Html
Html.TextBox("someproperty", null, new{});
和Html.TextBoxFor(a => Model.someproperty, new {});
, 两者都创建等价于
<input name="someproperty" (if new {} != null, other attributes) />
MSDN对模型绑定的解释:
控制器和 Razor 页面处理来自 HTTP 请求的数据。 例如,路由数据可能会提供记录键,而发布的表单字段可能会提供模型属性的值。 编写代码来检索每个这些值并将它们从字符串转换为 .NET 类型将是乏味且容易出错的。 模型绑定使这个过程自动化。 模型绑定系统:
从各种来源检索数据,例如路由数据、表单字段和查询字符串。 在方法参数和公共属性中向控制器和 Razor 页面提供数据。 将字符串数据转换为 .NET 类型。 更新复杂类型的属性。
简而言之,Html Helper Methods 自动为您创建关联的 Html 元素的过程,而不是您自己创建 Html 元素。
您可能在调用它可能从那里获取的视图时传递了这些值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.