我在从表单中获取复选框的值时遇到了一些问题。我可能做错了什么,但我无法理解我的生活。
我视图中的代码如下所示:
@using (Html.BeginForm("DisplayEmpPhotos", "Home", null, FormMethod.Post, new { id = "GetEmpNumbers" }))
{
<div id = "empForm">
<br/>
Event Name:<input type ="text" name="EventName"/>
<br/>
Event Dates:<input type ="text" name="EventDates"/>
<br/>
<br/>
<br/>
Enter Employee IDs:
<br/>
Consultant: <input type="checkbox" name="consultant" value="include" checked="checked" />
<br/>
}
复选框下面有几个文本框输入,但它们工作正常。
我的控制器中的代码如下所示:
public ActionResult DisplayEmpPhotos(string EventName, string EventDates, string consultant)
{
ViewData["EventName"] = EventName;
ViewData["EventDates"] = EventDates;
if(consultant == "include")
{
ViewData["Image"] = "<img src ='imgsrc' alt='First Last' class='nopad'/>";
ViewData["Name"] = "First Last";
ViewData["Deparment"] = "C";
ViewData["Title"] = "Consultant";
}
视图中有这个:
<td class="smalltext">
@ViewData["Image"]
<p>
@ViewData["Name"]
</p>
@ViewData["Department"]
<br/>
@ViewData["Title"]
</td>
我的想法是,如果选中该框,则传递它的值,我应该能够将Viewdata分配给该信息并在视图中显示它。我知道像这样的硬编码值是不好的做法,但对于我正在做的事情是可以接受的。感谢你对我做错的任何帮助。
答案 0 :(得分:2)
当你的Controller方法中的变量名为“checkbox”时,它应该是“顾问”,你真的应该使用Html CheckBox
帮助器。
所以在视图中:
Consultant: @Html.Checkbox("consultant", true)
在Controller中,将值更改为布尔值:
public ActionResult DisplayEmpPhotos(string EventName, string EventDates, bool consultant)
{
ViewData["EventName"] = EventName;
ViewData["EventDates"] = EventDates;
if(consultant)
{
ViewData["Image"] = "<img src ='imgsrc' alt='First Last' class='nopad'/>";
ViewData["Name"] = "First Last";
ViewData["Deparment"] = "C";
ViewData["Title"] = "Consultant";
}
}
如果这不适合您,请告诉我。
答案 1 :(得分:0)
如果在 ActionResult 中,您从string checkbox
更改为string consultant
?
MVC有时会对我这样做,当我将输入的名称更改为我在actionResult中声明它们的方式时,它们可以正常工作。