C# &引用;参数字典包含参数';蓝色&x27;不可为空的类型';System.Boolean'"E;”如何解决这个问题?
我是MVC应用程序的新手,在组合html帮助程序和控制器时遇到了一些问题。我希望我能充分暴露我的问题,因此: 所以我有这些复选框:C# &引用;参数字典包含参数';蓝色&x27;不可为空的类型';System.Boolean'"E;”如何解决这个问题?,c#,asp.net-mvc,C#,Asp.net Mvc,我是MVC应用程序的新手,在组合html帮助程序和控制器时遇到了一些问题。我希望我能充分暴露我的问题,因此: 所以我有这些复选框: <p> @Html.ActionLink("Create New", "Create") @using (Html.BeginForm()) { <p> <label> Obj Colors </label> Blue : @Html.C
<p>
@Html.ActionLink("Create New", "Create")
@using (Html.BeginForm())
{
<p>
<label>
Obj Colors
</label>
Blue : @Html.CheckBox("blueColor", true)
Red : @Html.CheckBox("redColor", true)
Green : @Html.CheckBox("greenColor", true) <br/>
Black : @Html.CheckBox("blackColor", true)
White : @Html.CheckBox("whiteColor", true)
</p>
(...)
}
但是当我加载SearchIndex所在的页面时,由于我引入了这些布尔值,我一进入页面就一直在标题中提到崩溃。出了什么问题?请帮帮我。这个错误说明了一切,真的。布尔值不能为空,显然蓝色是空的 您可以将方法签名更改为接受
Nullable
,如下所示
public ActionResult SearchIndex(string objName, string objType, string objSymbol, string objValue, string artistName, bool? blueColor, bool? redColor, bool? greenColor, bool? blackColor, bool whiteColor, bool colorless)
{
或者,如果希望将值从视图传递到方法中,则将发布的帮助程序包装在表单中,并使控制器操作接受post请求
@using (Html.BeginForm( ))
{
Blue : @Html.CheckBox("blueColor", true)
Red : @Html.CheckBox("redColor", true)
Green : @Html.CheckBox("greenColor", true) <br/>
Black : @Html.CheckBox("blackColor", true)
White : @Html.CheckBox("whiteColor", true)
}
[HttpPost]
public ActionResult SearchIndex(string objName, string objType, string objSymbol, string objValue, string artistName, bool blueColor, bool redColor, bool greenColor, bool blackColor, bool whiteColor, bool colorless)
{
但是(如果不使bool参数为null),则必须将值传递到此方法中,以便加载页面
您的ActionLink必须为不可为空的布尔值传递一些值,如下所示:
@Html.ActionLink("Cards", "SearchIndex", "Card", new {blueColor = true, redColor = false}, null)
这个错误说明了一切,真的。布尔值不能为空,显然蓝色是空的 您可以将方法签名更改为接受
Nullable
,如下所示
public ActionResult SearchIndex(string objName, string objType, string objSymbol, string objValue, string artistName, bool? blueColor, bool? redColor, bool? greenColor, bool? blackColor, bool whiteColor, bool colorless)
{
或者,如果希望将值从视图传递到方法中,则将发布的帮助程序包装在表单中,并使控制器操作接受post请求
@using (Html.BeginForm( ))
{
Blue : @Html.CheckBox("blueColor", true)
Red : @Html.CheckBox("redColor", true)
Green : @Html.CheckBox("greenColor", true) <br/>
Black : @Html.CheckBox("blackColor", true)
White : @Html.CheckBox("whiteColor", true)
}
[HttpPost]
public ActionResult SearchIndex(string objName, string objType, string objSymbol, string objValue, string artistName, bool blueColor, bool redColor, bool greenColor, bool blackColor, bool whiteColor, bool colorless)
{
但是(如果不使bool参数为null),则必须将值传递到此方法中,以便加载页面
您的ActionLink必须为不可为空的布尔值传递一些值,如下所示:
@Html.ActionLink("Cards", "SearchIndex", "Card", new {blueColor = true, redColor = false}, null)
在API签名中用true或false初始化bool
在API签名中用true或false初始化bool
哦,对不起,我会编辑我的帖子,因为这已经完成了。我不希望为空,而是希望为真/假。哦,对不起,我将编辑我的帖子,因为这已经完成了。我不希望有空值,而是真/假。操作方法是get还是post?您如何调用视图?通过位于“主页”的actionLink调用“SearchIndex”cshtml文件。您可以发布该链接吗?您需要通过位于菜单中的