【发布时间】:2019-02-01 21:40:26
【问题描述】:
我有以下表格。
@model LoginVm
<form asp-controller="Sec"
asp-action="Authorize"
asp-all-route-data="@Model.Querify"
method="post">
Email: <input asp-for="@Model.UserName" /> <br />
Password: <input asp-for="@Model.Password" /><br />
<button type="submit">Send</button>
</form>
视图模型是这样的。
public class LoginVm
{
public string UserName { get; set; }
public string Password { get; set; }
public string ReturnUrl { get; set; }
public IDictionary<string, string> Querify
=> new Dictionary<string, string>
{
{ "username", UserName },
{ "password", Password },
{ "returnurl", ReturnUrl }
};
}
但是,在下面显示的接收方法中,只存在在再现之前写入视图模型的值。所以,无论我在将它传递到视图之前放入视图模型中的什么,它都在那里。我尝试在输入框中对模型进行的任何更改都会丢失。
[HttpPost]
public IActionResult Authorize(
[FromQuery]string returnUrl,
[FromQuery]string userName,
[FromQuery] string password)
{ ... }
我虽然基于the docs 将输入框中的值绑定到模型中的字段,但显然我没有。不知道如何进一步诊断。
【问题讨论】:
标签: c# razor asp.net-core asp.net-core-2.2