0

我在从表单中获取复选框的值时遇到了一些问题。我可能做错了什么,但我一生都无法弄清楚。

我认为的代码如下所示:

@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&nbsp;Last' class='nopad'/>";
        ViewData["Name"] = "First&nbsp;Last";
        ViewData["Deparment"] = "C";
        ViewData["Title"] = "Consultant";
    }

该视图中包含以下内容:

<td class="smalltext">
        @ViewData["Image"]
        <p>
        @ViewData["Name"]
        </p>
        @ViewData["Department"]
        <br/>
        @ViewData["Title"]
</td>

我的想法是,如果选中该框,则传递它的值,我应该能够将 Viewdata 分配给该信息并将其显示在视图中。我知道这样的硬编码值是不好的做法,但对于我正在做的事情是可以接受的。感谢您对我做错的任何帮助。

4

2 回答 2

2

你的控制器方法中有一个名为“checkbox”的变量,当它应该是“consultant”时,你真的应该使用 HtmlCheckBox帮助器。

所以在视图中:

Consultant: @Html.Checkbox("consultant", true)

在控制器中,将值更改为布尔值:

public ActionResult DisplayEmpPhotos(string EventName, string EventDates, bool consultant)
{
   ViewData["EventName"] = EventName;
   ViewData["EventDates"] = EventDates;

   if(consultant)
   {
       ViewData["Image"] = "<img src ='imgsrc' alt='First&nbsp;Last' class='nopad'/>";
       ViewData["Name"] = "First&nbsp;Last";
       ViewData["Deparment"] = "C";
       ViewData["Title"] = "Consultant";
   }
}

如果这对你不起作用,请告诉我。

于 2013-03-13T16:47:28.843 回答
0

如果在您的ActionResult中您从 更改string checkboxstring consultant?

有时 MVC 对我这样做,当我将输入的名称更改为我在 actionResult 中声明它们的确切方式时,它们就起作用了。

于 2013-03-13T16:47:39.380 回答