在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"]");
答案 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)
至少有两种选择:
会话状态,如下所示:
将数据放入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"]);
}
查询字符串,如下所示:
将值作为查询字符串放入第二页的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"]);