我在html中有一个表单,我想将其提交给控制器
@using (Html.BeginForm("RegisterApartmentOwner", "Home", FormMethod.Post,
new { enctype = "multipart/form-data" }))
{
<p>
<label>First Name</label>
<input type="text" placeholder="Enter your first Name" name="firstName" />
<span class="errorMessage"></span>
</p>
<p>
<label>Last Name</label>
<input type="text" placeholder="Enter your last Name" />
<span class="errorMessage"></span>
</p>
<p>
<label>Password</label>
<input type="text" placeholder="Enter your password" name="Password"/>
<span class="errorMessage"></span>
</p>
<p>
<label>Password Again</label>
<input type="text" placeholder="Enter your password again" name="Password2"/>
<span class="errorMessage"></span>
</p>
<p>
<label>Mobile Number</label>
<input type="text" placeholder="Enter your mobile number" />
<span class="errorMessage"></span>
</p>
<p>
<input type="submit" value="Register" class="submit"/>
</p>
}
</div>
并且在控制器中我收到了此功能中的提交
public String RegisterTenant() {
return "done";
}
我可以看到done
消息,但是,我想收到我在表单中使用的输入值,请问怎么样?
我只想知道在控制器中接收表单的内容
答案 0 :(得分:5)
您可以接受formcollection(如:FormCollection collection
)作为帖子操作中的参数,或者更好的是,创建视图模型,将其发送到视图并将其发布到控制器。您必须将其设置为http post post course的参数。
示例:
[HttpPost]
public String RegisterTenant(FormCollection collection) {
// give all your html elements you want to read values out of an Id, like 'Password'
var password = collection["Password"];
// do something with your data
return "done";
}
或(更好!):
查看型号:
public class HomeViewModel
{
[Required]
public string UserName {get;set;}
}
查看(在上面):
@model Namespace.HomeViewModel
查看(在您的表单中):
@Html.TextBoxFor(m => m.UserName)
控制器:
[HttpPost]
public String RegisterTenant(HomeViewModel model)
{
var userName = model.UserName;
// do something
}
但是你应该对MVC做一些调查:观点,模型&amp;控制器和他们做什么。最好创建一个类型安全的视图模型并使用它。