ASP.net MVC3 从 HTML 表单获取复选框值

本文关键字:获取 复选框 表单 HTML net MVC3 ASP | 更新日期: 2023-09-27 18:31:09

我的MVC3网站中有一个简单的表单,允许用户创建竞赛条目。 这已经实现并且目前工作正常,但已经请求现在允许用户将其条目设为私有。

在我的入口模型中,我添加了一个布尔值是私有的。 然后我想我会更改用于创建和编辑的 HTML 表单,以包含一个复选框来指定该条目是否应该是私有的。

我是 MVC3 的新手,但我想我可以通过包含一个新的布尔参数来简单地更改表单发布到的操作。

不幸的是,这似乎不起作用。 谁能告诉我复选框值是如何从 HTML 表单传递到发布操作的? 这可能相当普遍,但我似乎在网上找不到这方面的例子。 几乎所有的例子都只是简单的显示文本输入,我找不到任何带有复选框的东西。

形式:

        <form method="post" action="../Entry/Create" enctype="multipart/form-data" onsubmit="return isValidInput()">
            <input type="text" id="EntryTitle" name="EntryTitle" />
            <div id="invalidTitle" class="invalidData"></div>
            <p id="char-remaining">(100 characters remaining)</p>
            <input type="text" id="EntryVideo" name="EntryVideo" />
            <div id="invalidVideo" class="invalidData"></div>
            <p id="vid-desc">(URL of the Video to Embed)</p>
            <input type="file" id="ImageFile" name="ImageFile" />
            <div id="invalidImage" class="invalidData"></div>
            <p id="file-desc">(200x200px, jpeg, png, or gif)</p>
            <textarea id="EntryDesc" name="EntryDesc"></textarea>
            <div id="invalidDesc" class="invalidData"></div>
            <br />
            <input type="checkbox" id="isPrivate" name="isPrivate" />
            Make my entry private.
            <br />
            (private entries will only be viewable by you and site administrators)
            <br />

            <button id="new-entry-save">save</button>
        </form>

行动:

public ActionResult Create(string EntryTitle, string EntryVideo, HttpPostedFileBase ImageFile, string EntryDesc, Boolean isPrivate)
{
...
}

ASP.net MVC3 从 HTML 表单获取复选框值

将值="true"添加到复选框,并在它后面添加具有相同名称和值=false的隐藏输入,即:

<input type="checkbox" id="isPrivate" name="isPrivate" value="true" />
<input type="hidden" name="isPrivate" value="false" />

如果您不想使用 hidden,请使用 bool?而不是 bool(例如,可为空)

另一种选择是具有相同名称的隐藏文本字段,以强制未选中字段中的数据成为帖子的一部分。请参阅发布未选中的复选框。

<form> 
  <input type='hidden' value='0' name='selfdestruct'> 
  <input type='checkbox' value='1' name='selfdestruct'> 
</form>