2016-07-26 77 views
0

比较我有返回JSON从JSON结果

[HttpPost] 
public JsonResult Validate(string arg1, string arg2) 
{ 
    bool check 
    ... 
    return Json(!check ? new { message = "-1" } : new { message = "1" }, JsonRequestBehavior.AllowGet); 
} 

行动,我需要从另一个调用的行动,行动。我需要在客户端调用(使用ajax)进行比较,并在另一个后续操作中进行服务器端验证。

如何从该操作获取消息?

var a = Validate(model.arg1, model.arg2); 
a.Data; 

返回json。我如何从中获得价值来比较一些东西?

+0

jsobject?无我想检查结果是否等于“-1” – gsiradze

+1

您是否真的需要验证控制器功能?它是否曾经从浏览器的'controller/action'方式被访问?如果不是,你可以在另一个类中移动“验证”。可能有一个helper.cs。引用该类并从您想要的控制器中调用此方法。这应该够了吧。 –

+0

@MridulKashyap是的,因为我真的需要它。 – gsiradze

回答

0
  1. 创建一个新的类文件。假设您将其命名为helper.cs

    namespace YourProject.Helper { public class Helper {/ 0}您的验证代码放在这里。 }}

  2. 进口该类在你的控制器使用MyProject.Helper using YourProjectNS.Helper

    ;

  3. 定义helper类中的验证功能。

    公共类助手{ 公共BOOL验证(字符串ARG1,ARG2字符串){ 布尔检查 ... 返回JSON(检查新{消息= “1”}!?新{消息=“1 “}); }}

  4. 在你的控制器,无论你需要它,访问它作为helperObj.Validate(v,v2)

    助手helperObj =新助手(); bool isValid = helperObj.Validate(v1,v2);

最终你的代码看起来是这样的:

在Helper.cs:

namespace MyProject.Helper{ 
    public class Helper{ 
     public bool Validate(string arg1, string arg2) 
     { 
      bool check 
      ... 
      return Json(!check ? new { message = "-1" } : new { message = "1" }); 
     } 
    } 
} 

在你的控制器动作:

using MyProject.Helper; 

public ActionResult MyAction(){ 
    ... 
    // your other code 
    Helper helperObj = new Helper(); 
    bool isValid = helperObj.Validate(v1, v2); 

    ... 
} 

希望这有助于。

+0

为什么有人低估了它?如果这是不好的方法提供更好:) – gsiradze

+0

@George这个想法应该没问题。答案本身需要适当的格式和语法。可能是一个完整的示例代码,因为它没有太多的代码。 –

+0

@KevinLee你会等吗?我正是那样做的! (-__-) –