允许boolean和integer作为url中的输入参数

时间:2015-08-21 06:49:36

标签: c#

我需要允许boolean和integer作为url中特定变量的输入参数。我如何实现它?

   public string PostReggieHeader(string xml, bool metaDataFlag)
    { 
        string xmlData = string.Empty;
        if (true)
        {
            xmlGenerator.ValidateXSD(xml);
            xmlData = UpdatePerformanceValues(documentService.PostReggieHeader(xml, metaDataFlag, Request.RequestUri.AbsoluteUri.ToString()));
        }
        return xmlData;
    }

在上面的代码中,我需要允许bool值和整数值作为输入参数。除了'0'之外,它会将每个其他整数视为'true'。

我已经尝试过以下代码,但是当我将metadataflag = true视为false时它失败了。有什么建议吗?

        [AcceptVerbs("GET", "POST")]
    public string PostReggieHeader(string xml, int? metaDataFlag)
    {
        string xmlData = string.Empty;
        bool metaFlag = metaDataFlag != null ? Convert.ToBoolean(metaDataFlag) : false;
        if (true)
        {
            //xmlGenerator.ValidateXSD(xml))
            xmlData = UpdatePerformanceValues(documentService.PostReggieHeader(xml, metaFlag, Request.RequestUri.AbsoluteUri.ToString()));
        }
        return xmlData;
    }

2 个答案:

答案 0 :(得分:3)

将输入作为字符串获取,然后将其解析为bool或int,它是什么,然后根据结果决定你想要做什么:

[AcceptVerbs("GET", "POST")]
public string PostReggieHeader(string xml, string metaDataFlag)
{
    string xmlData = string.Empty;
    bool metaTag = false;
    int metaTagInt = 0;
    bool isBool = false;
    if(metaDataFlag == null || bool.TryParse(metaDataFlag, out metaFlag))
    {
       isBool = true;
    }
    else 
    {
       int.TryParse(metaDataFlag, out metaTagInt);
    }

    //rest of code
}

答案 1 :(得分:0)

创建一个包含字符串和布尔字段的模型并传递该模型。服务器端将字符串和布尔属性提取到相应的变量中。

它适用于GET以及后期操作。