我遇到了从页面到页面传递变量的问题。在这里,我有一个下拉菜单,允许选择是或否的两个选项。使用默认选择。
<form method="post" id="Form" action="/admin/DefCon5">
<table align="center" style="width: 200px; height: 140px;">
<tr>
<td colspan="5"><img src="/images/logo.png"><br> </td>
</tr>
</table>
<div align="center">
<select id = "DefCon5" align="center" valign="top" name="DefCon5">
<option value="Choose">Choose..</option>
<option value="Yes">Yes</option>
<option value="No">No</option>
</select>
<br />
         
<textarea align="Center" name="message" value="message" rows="4" cols="40">Please enter a brief message before engaging DefCon5</textarea>
<br />
<input type="submit">
</div>
在这里,我选择其中一个选项(出于测试目的,我选择了是)
string yes = Request.Params["Yes"];
string no = Request.Params["No"];
var DefCon5 = Request["DefCon5"];
string message = Request.Params["message"];
string redirURL = "";
if (DefCon5 == "yes")
{
Response.Write(@message);
Response.Write(@Defcon);
redirURL = "/somepage";
}
else
{
redirURL = "/DefCon5";
}
我注意到if语句失败了,因为DefCon5没有完全正确读取。我尝试过上一页的变量,最后是一个文字字符串&#34;是&#34;。我也尝试了几个不同的请求,没有任何变化。我相信我可能会错误地传递是/否,但我不清楚为什么会这样。
答案 0 :(得分:0)
我认为您的控制器代码中应该有这样的更改
public ActionResult DefCon5(string DefCon5,string message)
{
//string yes = Request.Params["Yes"];
//string no = Request.Params["No"];
//var DefCon5 = Request["DefCon5"];
//string message = Request.Params["message"];
string redirURL = "";
if (DefCon5.ToLower() == "yes")
{
Response.Write(@message);
//Response.Write(@Defcon);
redirURL = "/somepage";
}
else
{
redirURL = "/DefCon5";
}
// your code here
return View();
}