0

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

在 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"]");
4

3 回答 3

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 模式。

于 2013-11-04T12:45:31.887 回答
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
    
于 2013-11-04T12:52:15.743 回答
0

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

int id = int.Parse(Request.Form["id"]);
于 2013-11-04T12:45:28.757 回答