C# MVC表单在提交时不传递模型

C# MVC表单在提交时不传递模型,c#,asp.net-mvc,C#,Asp.net Mvc,我有以下MVC视图和控制器。当我提交表格时。它传入Id而不是ChangeUserViewModel 视图: 我做错了什么?您已将该方法标记为private,这将使其无法访问。您不能发布到私有方法。这很可能是你的问题。换成 [HttpPost] public async Task<ActionResult> ChangePassword(ChangeUserViewModel model) { ...... ...... } 您已将该方法标记为private,这将使其无

我有以下MVC视图和控制器。当我提交表格时。它传入Id而不是ChangeUserViewModel

视图:


我做错了什么?

您已将该方法标记为private,这将使其无法访问。您不能发布到私有方法。这很可能是你的问题。换成

[HttpPost]
public async Task<ActionResult> ChangePassword(ChangeUserViewModel model)
{
   ......
   ......
}

您已将该方法标记为private,这将使其无法访问。您不能发布到私有方法。这很可能是你的问题。换成

[HttpPost]
public async Task<ActionResult> ChangePassword(ChangeUserViewModel model)
{
   ......
   ......
}

尝试在控制器操作中使用模型绑定

public async Task<ActionResult> ChangePassword([Bind(Include = "Id, Email, Password")]ChangeUserViewModel model) {}

尝试在控制器操作中使用模型绑定

public async Task<ActionResult> ChangePassword([Bind(Include = "Id, Email, Password")]ChangeUserViewModel model) {}

您能显示ChangeUserViewModel吗?您的模型是空的,只填充了Id字段,这是什么意思?我不知道和int如何取代你的模型。您如何确定这是怎么回事?发布您的视图模型时,通常的罪魁祸首是当您传入的模型缺少字段,并且框架在将传入的内容映射到它期望的对象时出现问题。我添加了模型@mxmissile-控制器接收到的参数是Id,而不是模型。我在调试时发现了这一点。控制器接收到的参数是Id,而不是模型。如何在不将Id声明为参数的情况下从ChangePasswordChangeUserViewModel模型中获取Id?能否显示ChangeUserViewModel?您的模型是否为空且仅填充了Id字段?我不知道和int如何取代你的模型。您如何确定这是怎么回事?发布您的视图模型时,通常的罪魁祸首是当您传入的模型缺少字段,并且框架在将传入的内容映射到它期望的对象时出现问题。我添加了模型@mxmissile-控制器接收到的参数是Id,而不是模型。我在调试时发现了这一点。控制器接收到的参数是Id,而不是模型。如何在不将Id声明为参数的情况下从ChangePasswordChangeUserViewModel模型获取Id?OP的EditorFor设置方式是正确的。如果它们更改为您建议的内容,则不会应用类窗体控件。@T_Roy哦,您是对的,我正在考虑TextBoxFor。谢谢,你就是阿迪加。我已经做了3个小时了,我从来没有想过要看访问修饰符。最终我会找到它,但上帝只知道需要多长时间。你帮我省了几个小时。谢谢,谢谢…OP的EditorFor设置方式是正确的。如果它们更改为您建议的内容,则不会应用类窗体控件。@T_Roy哦,您是对的,我正在考虑TextBoxFor。谢谢,你就是阿迪加。我已经做了3个小时了,我从来没有想过要看访问修饰符。最终我会找到它,但上帝只知道需要多长时间。你帮我省了几个小时。谢谢你,谢谢你。。。