C# 声明变量以返回Json结果(ASP.NET MVC4)
这是我的控制器的操作C# 声明变量以返回Json结果(ASP.NET MVC4),c#,json,asp.net-mvc,asp.net-mvc-4,C#,Json,Asp.net Mvc,Asp.net Mvc 4,这是我的控制器的操作 [HttpPost] [AjaxAction] public ActionResult Registration(RegisterUserModel registerUser) { var data; if (ModelState.IsValid) { if (!IsUserExist(registerUser.Email)) { var crypto = new SimpleCry
[HttpPost]
[AjaxAction]
public ActionResult Registration(RegisterUserModel registerUser)
{
var data;
if (ModelState.IsValid)
{
if (!IsUserExist(registerUser.Email))
{
var crypto = new SimpleCrypto.PBKDF2();
var encrpPass = crypto.Compute(registerUser.Password);
var newUser = _db.Users.Create();
newUser.Name = registerUser.Name;
newUser.Email = registerUser.Email;
newUser.Type = UserType.User.ToString();
newUser.Password = encrpPass;
newUser.PasswordSalt = crypto.Salt;
_db.Users.Add(newUser);
_db.SaveChanges();
data = new { status = "OK", message = "Success" };
}
else
{
data = new { status = "ERROR", message = "User already exists" };
}
}
else
{
data = new { status = "ERROR", message = "Data is incorrect" };
}
return Json(data, JsonRequestBehavior.AllowGet);
}
但是我不知道如何以正确的方式初始化数据
变量,因为我需要在不同的情况下设置不同的值。正确的方法是什么?您可以尝试以下方法:
var data = new object();
您可以尝试以下方法:
var data = new object();
我通常使用多个
return
语句来避免像
if(something){
return Json(new{status = "status 1", message = "message1"})
}
else{
return Json(new{status = "status 2", message = "message2"})
}
我通常使用多个
return
语句来避免像
if(something){
return Json(new{status = "status 1", message = "message1"})
}
else{
return Json(new{status = "status 2", message = "message2"})
}
您可以使用关键字
您可以使用关键字
这里是一个选项
[HttpPost]
[AjaxAction]
public ActionResult Registration(RegisterUserModel registerUser)
{
JsonResult data;
if (ModelState.IsValid)
{
if (!IsUserExist(registerUser.Email))
{
var crypto = new SimpleCrypto.PBKDF2();
var encrpPass = crypto.Compute(registerUser.Password);
var newUser = _db.Users.Create();
newUser.Name = registerUser.Name;
newUser.Email = registerUser.Email;
newUser.Type = UserType.User.ToString();
newUser.Password = encrpPass;
newUser.PasswordSalt = crypto.Salt;
_db.Users.Add(newUser);
_db.SaveChanges();
data = Json(new { status = "OK", message = "Success" }, JsonRequestBehavior.AllowGet);
}
else
{
data = Json(new { status = "ERROR", message = "User already exists"}, JsonRequestBehavior.AllowGet);
}
}
else
{
data = Json(new { status = "ERROR", message = "Data is incorrect" }, JsonRequestBehavior.AllowGet);
}
return data;
}
这里是一个选项
[HttpPost]
[AjaxAction]
public ActionResult Registration(RegisterUserModel registerUser)
{
JsonResult data;
if (ModelState.IsValid)
{
if (!IsUserExist(registerUser.Email))
{
var crypto = new SimpleCrypto.PBKDF2();
var encrpPass = crypto.Compute(registerUser.Password);
var newUser = _db.Users.Create();
newUser.Name = registerUser.Name;
newUser.Email = registerUser.Email;
newUser.Type = UserType.User.ToString();
newUser.Password = encrpPass;
newUser.PasswordSalt = crypto.Salt;
_db.Users.Add(newUser);
_db.SaveChanges();
data = Json(new { status = "OK", message = "Success" }, JsonRequestBehavior.AllowGet);
}
else
{
data = Json(new { status = "ERROR", message = "User already exists"}, JsonRequestBehavior.AllowGet);
}
}
else
{
data = Json(new { status = "ERROR", message = "Data is incorrect" }, JsonRequestBehavior.AllowGet);
}
return data;
}
如何用Object填充status和message属性据我所知,
System.Object
没有可用的公共属性,而且,如果将数据初始化为Object,然后为其分配一个带有两个属性的匿名对象,代码将不会编译。Dot Net在fly上为匿名对象创建类型如何使用Object填充status和message属性据我所知,System.Object
没有可用的公共属性,而且,如果将数据初始化为Object,然后为其分配一个具有两个属性的匿名对象,代码将不会编译。Dot Net为飞行中的匿名对象创建类型非常感谢,有趣的想法。非常感谢,有趣的想法。仅供参考。如果(true){return'whatever}return'whatever'可以编写,则不需要else语句@Fran很注意,但实际上我不喜欢在我的行动中有多重回报,我更喜欢有一个。也许我不对,仅供参考。如果(true){return'whatever}return'whatever'可以编写,则不需要else语句@Fran很注意,但实际上我不喜欢在我的行动中有多重回报,我更喜欢有一个。也许我不对。