我有一个非常简单的html表单,在提交后,应该将用户重定向到另一个页面。表单中有一个字段,如果用户输入了值,则需要将该值附加到重定向Url(通过查询字符串)。
因此,如果用户在表单中输入“hello”,它们将被重定向到“mysite.com?x=hello”,否则它将直接指向“mysite.com?x=”。目前我的代码忽略了我的POST中的IF语句,任何人都可以看到问题是什么?
这是我的代码:
<form>
<input type="text" id="test" name="test" />
<input type="submit" value="Submit" />
</form>
if(IsPost){
var x = Request.Form["test"].IsEmpty() ? false : true;
if(x){
x = "hello";
}
Response.Redirect("http://www.mysite.com?x=" + x);
}
答案 0 :(得分:2)
当您尝试将字符串("hello"
)分配给布尔值x
(true
/ false
)时,您的当前代码将无法编译,但您只需指定当x
为假时,即当Request.Form["test"]
为空时。
试试这个:
string redirectTo = Request.Form["test"];
if (string.IsNullOrEmpty(redirectTo))
{
redirectTo = "hello";
}
Response.Redirect("http://www.mysite.com?x=" + HttpUtility.UrlEncode(redirectTo));
有些不清楚你想要从你的问题中发生什么,但你必须能够从这里弄明白。如果您想在输入为空时重定向到?x=
,只需移除if
块,因为Request.Form["not entered item"]
将返回null
。
@ChrisK对你的问题发表评论,有更好的方法可以做到这一点。
答案 1 :(得分:1)
您正在检查IsPost
但它应该是IsPostBack
。
请参阅此MSDN文章以供参考。