我目前正在开发一个ASP.NET MVC 4应用程序。我是ASP.NET MVC的新手。现在,我有一个像这样编码的表格:
<form role="form" method="post" action="/contact/new">
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label for="name">Name</label>
<div id="name">
<input class="form-control" type="text" autocomplete="off" />
</div>
</div>
<div class="form-group">
<label for="gender">Gender</label>
<select id="gender" class="form-control">
<option value="m">Male</option>
<option value="f">Female</option>
</select>
</div>
<div class="form-group">
<label for="email">Email Address</label>
<input class="form-control" type="email" autocomplete="off" />
</div>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
我的控制器和操作如下所示:
public class ContactController : Controller
{
public ActionResult New()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult New()
{
return View();
}
}
我的挑战是,我不知道在控制器中为HttpPost动作的参数添加什么。我该放什么?
谢谢!
答案 0 :(得分:1)
MVC 基于模型视图控制器。你应该有一个View模型,你的视图应该强烈地键入它的模型。
如果您不希望强类型视图包含某些Model类,则必须从Request
读取表单数据:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult New(FormCollection form)
{
string Name = form["UserName"].ToString();
return View();
}
并在输入元素中添加 name 属性:
<input class="form-control" type="text" name="UserName" autocomplete="off" />
您应该看到这几个链接,用于理解强类型视图和表单帖子:
答案 1 :(得分:0)
首先,您需要确保填写表单控件上的/ name / attributes。
然后,您应该定义一个名为NewContactViewModel的ViewModel类和您的ActionResult:
public class NewContactViewModel
{
public string name { get; set; }
public string gender { get; set; }
public string email { get; set; }
}
[HttpPost]
public ActionResult New(NewContactViewModel model)
{
}