在Asp.net中转发和传递数据

时间:2013-11-04 12:41:11

标签: asp.net asp.net-mvc asp.net-web-api http-post

在Asp.net实体框架中,我需要转发到另一个页面并传递第二页处理的一些数据。

在PHP中我可以做类似

的事情
<!-- page1.php -->
<form action="page2.php" method="POST">
    <input type="hidden" name="id" />
    <input type="submit" value="Go to page 2" />
</form>


<!-- page2.php -->
<?php
    echo $_POST['id'];
?>

如何在Asp.net中实现?

编辑:使用Javascript和jQuery有一个简单的解决方案。

<!-- on page 1 -->
$('input[type=submit]').on('click', function (e) {
    // Forward to browsing page and pass id in URL
    e.preventDefault();
    var id= $('input[name=id]').val();
    if ("" == id)
        return;

    window.location.href = "@Request.Url.OriginalString/page2?id=" + id;
});

<!-- on page 2 -->
alert("@Request.QueryString["id"]");

3 个答案:

答案 0 :(得分:1)

有很多方法可以做到这一点,请查看this link获取一些指导。

HTML页面:

 <form method="post" action="Page2.aspx" id="form1" name="form1">
    <input id="id" name="id" type="hidden" value='test' />
    <input type="submit" value="click" />
 </form>

Page2.aspx中的代码:

protected void Page_Load(object sender, EventArgs e)
    {
        string value = Request["id"];
    }

MVC 看起来像......

@using (Html.BeginForm("page2", "controllername", FormMethod.Post))
{
    @Html.Hidden(f => f.id)
    <input type="submit" value="click" />
}

另外,通读这些MVC tutorials,你不应盲目地将你在PHP中所知的内容翻译成ASP.NET MVC,因为你也需要学习MVC模式。

答案 1 :(得分:1)

至少有两种选择:

  1. 会话状态,如下所示:

    将数据放入Session(您的第一页)

    Session["Id"] = HiddenFieldId.Value;
    

    Session(您的第二页)中获取数据

    // First check to see if value is still in session cache
    if(Session["Id"] != null)
    {
        int id = Convert.ToInt32(Session["Id"]);
    }
    
  2. 查询字符串,如下所示:

    将值作为查询字符串放入第二页的URL

    http://YOUR_APP/Page2.aspx?id=7
    

    在第二页中读取查询字符串

    int id = Request.QueryString["id"]; // value will be 7 in this example
    

答案 2 :(得分:0)

您还可以在ASP.NET中使用<form>method="POST"。并在代码中获得价值:

int id = int.Parse(Request.Form["id"]);