我做了这一切,但现在如何在CONTROLLER中的文本框,密码框等中输入值。我定义了所有必要的方法,框和按钮等。所以唯一的问题是在控制器中获取值,然后将它们发送到模型以访问db数据
.csHtml
@using (Html.BeginForm("register","Home", FormMethod.Post, new {id="submitForm"}))
{
<div>
<i>@Html.Label("Name:")</i>
@Html.TextBox("txtboxName")
</div>
<div>
<i>@Html.Label("Email:")</i>
@Html.TextBox("txtboxEmail")
</div>
<div>
<i>@Html.Label("Password:")</i>
@Html.Password("txtboxPassword")
</div>
<div>
<button type="submit" id="btnSubmit" name="Command" value="Submit">Submit</button>
</div>
}
控制器代码:
namespace LoginSys.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Message = "Registration";
return View();
}
[HttpPost]
public ActionResult register(string command, FormCollection formData )
{
if (command == "submit")
{
var name = formData["txtboxName"];
var email = formData["txtboxEmail"];
}
return View();
}
}
}
我故意使用这种编码方式而不是复杂而前进的方式。只是帮我在控制器中获取值
答案 0 :(得分:0)
[HttpPost]
public ActionResult register(YOURMODEL model)
{
//db operation
return View();
}
注意:确保您的文本框名称应与型号名称相同
答案 1 :(得分:0)
您应该使用viewmodels。为可以发布到操作的视图创建模型。但是,如果您希望继续当前的方法,则需要将控制器操作更改为以下内容:
[HttpPost]
public ActionResult register(string btnSubmit, string txtboxName, string txtboxEmail, string txtboxPassword)
{
if (command == "submit")
{
}
return View();
}
如果这不起作用,您可以使用以下方法对其进行测试:
[HttpPost]
public ActionResult register(FormCollection form)
{
if (command == "submit")
{
}
return View();
}
调试时,您可以检查'form'参数,看看表单中是否存在您的字段,并获取所需参数的正确名称。