Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# &引用;参数字典包含参数';蓝色&x27;不可为空的类型';System.Boolean'"E;”如何解决这个问题?_C#_Asp.net Mvc - Fatal编程技术网

C# &引用;参数字典包含参数';蓝色&x27;不可为空的类型';System.Boolean'"E;”如何解决这个问题?

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

我是MVC应用程序的新手,在组合html帮助程序和控制器时遇到了一些问题。我希望我能充分暴露我的问题,因此:

所以我有这些复选框:

<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文件。您可以发布该链接吗?您需要通过位于菜单中的
  • @Html.ActionLink(“OBJS”、“SearchIndex”、“Obj”)
  • 为bools传递值,这就是您要寻找的吗?操作方法是get还是post?您如何调用视图?通过位于“主页”中的调用“SearchIndex”的ActionLinkcshtml文件。你能发布那个链接吗?您需要通过位于菜单中的
  • @Html.ActionLink(“OBJS”、“SearchIndex”、“Obj”)
  • 传递布尔值,这就是您要查找的吗?