C# Asp.net MVC中的ExternalLogin()未正确传递更改的viewmodel数据
在我的ASP.NETMVC站点中,我有一个注册操作,它接受我的RegisterViewModelC# Asp.net MVC中的ExternalLogin()未正确传递更改的viewmodel数据,c#,asp.net-mvc,asp.net-mvc-viewmodel,C#,Asp.net Mvc,Asp.net Mvc Viewmodel,在我的ASP.NETMVC站点中,我有一个注册操作,它接受我的RegisterViewModel [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public async Task<ActionResult> Register(RegisterViewModel model) { // register code here } 当我调用“Register”时,
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Register(RegisterViewModel model)
{
// register code here
}
当我调用“Register”时,我的RegisterViewModel数据都很好(model.Gender、model.ProfileType等),但当我调用“ExternalLogin”时,Gender和ProfileType不正确。它们是默认值
有人知道这是为什么吗
下面是viewmodel中的html和代码
<div id="formGroup1" class="form-group">
@Html.LabelFor(m => m.Gender, new { @id = "genderLabel" })
<div class="">
@Html.EnumDropDownListFor(m => m.Gender, new {@id = "genderId", @class = "selectpicker form-control" })
</div>
</div>
<div id="formGroup2" class="form-group">
@Html.LabelFor(m => m.ProfileType, new { @id = "profileTypeLabel", @class = "" })
<div class="">
@Html.EnumDropDownListFor(m => m.ProfileType, new { @class = "form-control selectpicker" })
</div>
</div>
CSHTML代码缺少确定数据是否加载到视图模型中的关键部分,即表单和按钮 仅当ASP输入元素与重定向到控制器的按钮在同一表单中指定时,数据才会正确加载到视图模型中 我猜在您的场景中,与
Register
和ExternalLogin
关联的按钮有两种不同的形式
(我还假设您在页面顶部正确设置了
@model
)您的CSHTML代码缺少决定数据是否加载到视图模型中的关键部分,即表单和按钮
仅当ASP输入元素与重定向到控制器的按钮在同一表单中指定时,数据才会正确加载到视图模型中
我猜在您的场景中,与Register
和ExternalLogin
关联的按钮有两种不同的形式
(我还假设您已在页面顶部正确设置了
@model
)viewmodel中除了性别和ProfileType之外还有其他项目吗?viewmodel中除了性别和ProfileType之外还有其他项目吗?
<div id="formGroup1" class="form-group">
@Html.LabelFor(m => m.Gender, new { @id = "genderLabel" })
<div class="">
@Html.EnumDropDownListFor(m => m.Gender, new {@id = "genderId", @class = "selectpicker form-control" })
</div>
</div>
<div id="formGroup2" class="form-group">
@Html.LabelFor(m => m.ProfileType, new { @id = "profileTypeLabel", @class = "" })
<div class="">
@Html.EnumDropDownListFor(m => m.ProfileType, new { @class = "form-control selectpicker" })
</div>
</div>
[Required()]
[Display(Name = "I am a")]
public Gender Gender { get; set; }
[Required()]
[Display(Name = "Who wants to")]
public ProfileType ProfileType { get; set; }