ASPX引擎
我有一个带搜索按钮的网络表单。用户输入用户ID并假设用数据填充表。
如果用户输入的数字不是数字,则会显示一条消息,只说数字 如果用户将该字段留空并点击搜索按钮。没有找到结果/类假设显示。
我遇到的问题是,无论我在文本字段中添加什么,数据仍会填充表格。
HTML
<div align="center">
<form id="searchUser" method="post" action="Search">
<table align="center">
<tr>
<td class="label">
Enter ID:
</td>
<td>
<input type="text" name="UserId" id="UserId" value="<%=(string)(ViewBag.userid)%>" />
</td>
</tr>
<tr>
<td>
<button class="searchButton" id="searchButton">Search</button>
</td>
</tr>
</table>
</form>
</div>
<hr />
<% if (ViewBag.searchClass !=null)
{ %>
<h2>Search Resuls</h2>
<br />
<%AAlexUsers.Models.SearchClass searchClassList= ViewBag.searchClass;%>
<table>
<tr>
<td>
UserID:
</td>
<td class="content">
<%=searchClassList.userId%>
</td>
</tr>
<tr>
<td>
Email:
</td>
<td class="content">
<%=searchClassList.email%>
</td>
</tr>
<tr>
<td>
Last Four Digits:
</td>
<td class="content">
<%=searchClassList.lastFourdigits%>
</td>
</tr>
</table>
<%} else %>
<%{ %>
<h2>No Class found.</h2>
<%} %>
控制器
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
return View();
}
public ActionResult About()
{
return View();
}
public ActionResult Search()
{
string userId = Request["UserId"];
bool view = false;
if (Request["UserId"] == null)
{
view = true;
}
if (!view)
{
AAlexUsers.Models.SearchClass searchClass = new Models.SearchClass();
{
searchClass.lastFourdigits = "2222";
searchClass.userId = userId;
searchClass.email = "diaz@gmail.com";
string lastFourdigits = searchClass.lastFourdigits;
string userIdd = searchClass.userId;
string email = searchClass.email;
ViewBag.searchClass = searchClass;
ViewBag.lastFourdigits = lastFourdigits;
ViewBag.userId = userIdd;
ViewBag.email = email;
}
}
return View();
}
}
模型
public class SearchClass
{
public string userId { get; set; }
public string email { get; set; }
public string lastFourdigits { get; set; }
public SearchClass()
{
userId = "";
email = "";
lastFourdigits = "";
}
}
答案 0 :(得分:1)
更改此行...
if (Request["UserId"] == null)
......对此...
if (string.IsNullOrEmpty(userId))
答案 1 :(得分:1)
您正在检查Request["UserId"]
是否为空,但它永远不会为空,因为即使在您的模型中,您也默认将其值定义为空字符串。
编辑:
好的,迈克更快,但这解释了为什么你需要使用IsNullOrEmpty
:)
关于数字健全性检查:
string Str = Request["UserId"];
double Num;
bool isNum = double.TryParse(Str, out Num);
如果您的字符串不是数字, isNum
将为false。
我没有任何c#开发IDE,但我检查了规格,这应该可行。