gpt4 book ai didi

c# - 如何在 MVC 中将文本框\输入值从 View 传递到 Controller

转载 作者:太空狗 更新时间:2023-10-30 01:02:54 26 4
gpt4 key购买 nike

我的 View 中有以下输入,我想将它们传递给 Controller ​​:

<div>
<span><label>Username</label></span>
<span><input type="text" class="textbox" id="username"></span>
</div>
<div>
<span><label>Password</label></span>
<span><input type="password" class="password" id="password"></span>
</div>

这是我的 Controller 方法,用于验证特定用户:

public ActionResult LoginMethod(string username, string password)
{
if (username == "admin" && password == "admin1")
{
return RedirectToAction("Home");
}
else
{
return RedirectToAction("Login");
}
}

最佳答案

如果你想保持你的 Controller Action 和 View 一样,你可以简单地添加 name 属性来匹配你的 Action 参数,它们将传递数据:

<input type="text" class="textbox" id="username" name="username">
<input type="password" class="password" id="password" name="password">

但是我建议使用强类型 View 模型,因为错误空间更小并且可以更好地利用框架。

为此,您需要执行以下操作:

创建一个包含您的属性的类并为您的标签添加 DisplayName 属性:

public class FooViewModel 
{
[DisplayName("Username")]
public string Username { get; set; }
[DisplayName("Password")]
public string Password { get; set; }
}

将模型指令添加到您的 View 并使用 HtmlHelpers 而不是 html 输入:

@model FooViewModel
<div>
<span>@Html.LabelFor(x => x.Username)</span>
<span>@Html.TextBoxFor(m=> m.Username)</span>
</div>
<div>
<span>@Html.LabelFor(x => x.Password)</span>
<span>@Html.PasswordFor(m=> m.Password)</span>
</div>

然后将您的操作更改为:

public ActionResult LoginMethod(FooViewModel model)
{
if (model.Username == "admin" && model.Password == "admin1")
{
return RedirectToAction("Home");
}
else
{
return RedirectToAction("Login");
}
}

关于c# - 如何在 MVC 中将文本框\输入值从 View 传递到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31850359/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com