gpt4 book ai didi

asp.net mvc 表单不发布参数值

转载 作者:行者123 更新时间:2023-12-02 18:06:53 24 4
gpt4 key购买 nike

我遇到了一个我认为非常愚蠢的问题,我显然错过了一些简单的事情。

我制作了一个简单的 asp.net mvc 站点 (.net 4.5) 并将索引更改为一个简单的表单,我想将其发回自身并吐出变量。
这是我的表格

@using(Html.BeginForm())
{
<input type="text" class="form-control" id="empId" placeholder="Enter EmployeeId (ex. 999999)">
<input type="text" class="form-control" id="account" placeholder="Enter account)">
<input type="email" class="form-control" id="email" placeholder="Enter email">
<input type="submit" class="btn btn-default" value="Submit" />
}

这是我的发布方法

[HttpPost]
public ActionResult Index(string empId, string account, string email)
{
return Content(Request["empId"]);
}

当页面发布时我什么也没得到。同样在调试器中,我可以看到该方法被命中,但是即使我填写了表单,所有参数都为空。

我是否遗漏了一些明显的东西?

最佳答案

你只是忘记了 name 属性:

@using(Html.BeginForm())
{
<input type="text" class="form-control" name="empId" id="empId" placeholder="Enter EmployeeId (ex. 999999)">
<input type="text" class="form-control" name="account" id="account" placeholder="Enter account)">
<input type="email" class="form-control" name="email" id="email" placeholder="Enter email">
<input type="submit" class="btn btn-default" value="Submit" />
}

我总是建议使用模型绑定(bind)而不是某些字符串或整数。如果你使用得好,它将使模型绑定(bind)变得毫不费力:

型号:

public class ExampleModel
{
public int empId { get; set; }
public string account{ get; set; }
public string email{ get; set; }
}

在 Razor 页面中:

@using(Html.BeginForm())
{
@Html.EditorFor((m => m.intempId, new { @class = "form-control" } ))
@Html.EditorFor((m => m.account, new { @class = "form-control" }))
@Html.EditorFor((m => m.email, new { @class = "form-control" }))
}

然后在 Controller 中:

[HttpPost]
public ActionResult Index(ExampleModel model)
{
return Content(model.empId);
}

使用模型,您还可以直接在模型上添加验证等,然后 ASP.NET MVC 可以使用 jQuery 验证将验证放在前端和后端(if (ModelState.IsValid))。使用模型有很多好处!

关于asp.net mvc 表单不发布参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30328402/

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