.Net下拉菜单c#

时间:2017-12-12 21:48:04

标签: c# asp.net razor

我遇到了从页面到页面传递变量的问题。在这里,我有一个下拉菜单,允许选择是或否的两个选项。使用默认选择。

 <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>&nbsp;</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 /> 
        &nbsp &nbsp &nbsp &nbsp &nbsp
        <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;。我也尝试了几个不同的请求,没有任何变化。我相信我可能会错误地传递是/否,但我不清楚为什么会这样。

1 个答案:

答案 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();
        }