Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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# 访问对象属性值_C#_Asp.net Mvc_Jsonresult - Fatal编程技术网

C# 访问对象属性值

C# 访问对象属性值,c#,asp.net-mvc,jsonresult,C#,Asp.net Mvc,Jsonresult,我如何在下面的代码中验证“success”是真是假?我已尝试使用以下代码,但它不起作用: if (result["success"].Equals(false)) throw new Exception(result["message"].ToString()); if (result["message"].ToString().Contains("maximum limit reached")) throw new Exception(result["message"].ToString()

我如何在下面的代码中验证“success”是真是假?我已尝试使用以下代码,但它不起作用:

if (result["success"].Equals(false)) throw new Exception(result["message"].ToString());

if (result["message"].ToString().Contains("maximum limit reached")) throw new Exception(result["message"].ToString());
以下是我的行动:

[HttpPost]
    public ActionResult PostFile(string NewFileName, string FileNumber)
    {

        try
        {
            var result = ((JsonResult)(SaveFile(NewFileName, FileNumber))).ToDictionary();
            if (result.Keys.Contains("message")) throw new Exception(result["message"].ToString());
            //if (result["success"].Equals(false)) throw new Exception(result["message"].ToString());

            return Content("success");
        }
        catch (Exception ex)
        {
            return Content(ex.ToString());
        }

    }

    public ActionResult SaveFile(string status, string FileNumber)
    {

        try
        {
            var currentPath = ConfigurationManager.AppSettings["FilePath"]; 
            string filename = FileNumber + ".pdf";
            var ext = UploadHandler.SaveUploadedFile(Path.GetDirectoryName(currentPath), filename);
            return Json(new { success = true }, "text/html"); 
        }
        catch (Exception ex)
        {
            return Json(new { success = false, message = ex.Message }, "text/html");
        }
    }
非常感谢任何帮助

方法1
您可以使用方法分离逻辑并组合方法

从Javascript调用:

$.ajax({
    type: 'POST',
    url: 'Controller/PostFile',
    data: { newFileName = '', fileNumber = '' },
    success: function(content) {
    }
});

您需要解析您的输入
bool.Parse(success)==false
@Romoku如果(result[“success”].Equals(bool.Parse(success)==false))没有抛出我想要的异常,它将转到catch instedi means
bool.Parse(result[“success”])==false
获取错误:错误与“bool.Parse(string)”匹配的最佳重载方法'有一些无效的参数,我可以在没有JQuery Ajax的情况下访问“success”属性吗?谢谢您提供的替代解决方案。但是,我想知道如何在上面的代码中访问“success”和/或“message”对象属性。我相信我的工作方式应该很好,我发布了这个问题,以了解我是否遗漏了什么或做错了什么。谢谢我很确定我的代码是正确的。想解释一下否决票吗?谢谢你的替代方案。但是,我想知道如何在上面的代码中访问“success”和/或“message”对象属性。我相信我的工作方式应该很好,我发布了这个问题,以了解我是否遗漏了什么或做错了什么。谢谢求救
$.ajax({
    url: 'ControllerName/PostFile',
    data: JSON.stringify({ NewFileName: "FileName", FileNumber: "12" }),
    type: 'POST',
    contentType: 'application/json, charset=utf-8',
    dataType: 'json',
    beforeSend: function (xhr, opts) {
    }
}).done(function (data) {
    if(data.success) {
        alert('ok');
    }
});
private void UploadFile(string status, string fileNumber)
{
    var currentPath = ConfigurationManager.AppSettings["FilePath"]; 
    string filename = fileNumber + ".pdf";
    UploadHandler.SaveUploadedFile(Path.GetDirectoryName(currentPath), filename);
}

[HttpPost]
public ActionResult PostFile(string newFileName, string fileNumber)
{
    var isAjax = Request.IsAjaxRequest();

    try
    {
        UploadFile(newFileName, fileNumber);
    }
    catch (Exception ex)
    {
        if(isAjax)
        {
            return Json(new { success = false, message = ex.Message }, "text/html");
        }

        return Content(ex.ToString());
    }

    if(isAjax)
    {
        return Json(new { success = true }, "text/html"); 
    }

    return Content("success");
}
$.ajax({
    type: 'POST',
    url: 'Controller/PostFile',
    data: { newFileName = '', fileNumber = '' },
    success: function(content) {
    }
});