Asp.net mvc Html.BeginForm内部部分更改属性
在我的ASP.NETMVC(5.2)项目中,我有一个名为Asp.net mvc Html.BeginForm内部部分更改属性,asp.net-mvc,asp.net-mvc-5,partial-views,asp.net-mvc-partialview,html.beginform,Asp.net Mvc,Asp.net Mvc 5,Partial Views,Asp.net Mvc Partialview,Html.beginform,在我的ASP.NETMVC(5.2)项目中,我有一个名为register.cshtml的页面。它不包括任何形式或任何东西,只是简单的div 在其中一个div中,我正在渲染一个部分: @Html.Partial(“~/Views/Users/\ux.cshtml”) 在\u x.cshtml中,我有一个表单: @using (Html.BeginForm("/users/x")) { ... } 当我进入我的注册页面时,我希望我的表格呈现为: 但是,我得到的是: 什么是length=2
register.cshtml
的页面。它不包括任何形式或任何东西,只是简单的div
在其中一个div中,我正在渲染一个部分:
@Html.Partial(“~/Views/Users/\ux.cshtml”)
在\u x.cshtml
中,我有一个表单:
@using (Html.BeginForm("/users/x"))
{
...
}
当我进入我的注册页面时,我希望我的表格呈现为:
代码>
但是,我得到的是:
代码>
什么是length=23
,为什么添加了novalidate
属性,为什么发布到不正确的路径
为什么我的表单没有正确呈现?如果您想发布到userscocontroller
中名为x
的方法,则需要
@using (Html.BeginForm("x", "users"))
{
....
}
请注意,您当前使用的接受对象routeValues
,并且由于它是字符串,因此该方法生成了长度的路由值,因为这是字符串的唯一属性(/users/register
是因为生成主视图的方法)如果您想发布到userscocontroller
中名为x
的方法,则需要
@using (Html.BeginForm("x", "users"))
{
....
}
请注意,您当前使用的接受对象routeValues
,并且由于它是字符串,因此该方法生成了长度的路由值,因为这是字符串的唯一属性(/users/register
是因为生成主视图的方法)来自您的代码
Html.BeginForm("/users/x")
我知道用户是您的控制器,而x是一种方法。所以你可以这样做-
@using (Html.BeginForm("x", "users", FormMethod.Post, new { id = "YourFormID"}))
{
}
从你的代码
Html.BeginForm("/users/x")
我知道用户是您的控制器,而x是一种方法。所以你可以这样做-
@using (Html.BeginForm("x", "users", FormMethod.Post, new { id = "YourFormID"}))
{
}
注意:这是因为在构造函数中传递了错误的参数
在你看来
@Html.Partial("~/Views/Shared/_x.cshtml")
注意:这是因为在构造函数中传递了错误的参数
在你看来
@Html.Partial("~/Views/Shared/_x.cshtml")
你在打电话。我想这不是你想要的。您应该在BeginForm
中使用控制器/操作名称,而不是url。假设您有一个名为userscocontroller
的控制器,其方法名为x
,则需要使用(Html.BeginForm(“x”,“users”)){
哦,我怎么会犯这样一个简单的错误。是的,现在就更正了。你能把它作为你正在呼叫的@Stephenmueckey的答案发布吗?我想这不是你想要的。你应该在BeginForm
中使用控制器/操作名称,而不是url。假设你有一个名为usersController
的控制器,并且有一个名为x
,则需要使用(Html.BeginForm(“x”,“users”))来。){
噢,我怎么会犯这样一个简单的错误。是的,现在就更正了。你能不能把它作为一个答案发布@StephenMueckeSee也更新解释长度
查询字符串值是的,我还意识到它将对象的所有属性序列化为查询字符串参数,这解释了神秘的长度=23:)参见更新解释长度
查询字符串值是的,我还意识到它将对象的所有属性序列化为查询字符串参数,这解释了神秘的长度=23:)