这个简单的代码:
[HttpPost]
public ActionResult Check(string chosen_username, string email) {
var lang = RouteData.Values["lang"]; ViewBag.Language = lang;
string un; string em;
try {
un = chosen_username; em = email;
}
catch { un = ""; em = ""; }
string s = un.Length.ToString();
ViewBag.test = s;
return View();
}
将对象引用设置为未设置为对象异常的实例(在读取“string s = un.Length.ToString();”
的行上有人能帮助C#新手吗?
答案 0 :(得分:4)
我认为你没有初始化ViewBag对象,或者它是null 试试这个
if (ViewBag != null)
ViewBag.test = un.Length.ToString();
要确保问题不在字符串中(并且不是,请相信我)试试这个
string s = un.Length.ToString();
并使用调试器检查s是您期望的那个。
OP发布新代码后编辑:
简单地说:string un为null !!
尝试使用
if (!String.IsNullOrEmpty(un))
ViewBag.test = un.Length.ToString();
else {
// Manage here the error
}
答案 1 :(得分:0)
对象引用例外是指您的ViewBag
对象,而不是您的un.Length.ToString()
值。
以下情况应该可以正常运行:
string un = "test"; string em = "test";
string test = un.Length.ToString();
答案 2 :(得分:0)
如果chosen_username为null,你应该得到那个空指针异常,因为你从未初始化你的un string变量,
你应该: - 检查空输入 - 初始化函数局部变量 - 分配它们以避免null,如: un = selected_username ??的String.Empty; 强>