【发布时间】:2019-06-17 15:37:12
【问题描述】:
我正在尝试捕获页面加载时提交的 URL。当页面加载时,它会附加提供的参数,以提供我需要保存的信息。问题是当我让用户填写表单字段并提交时,URL 包含处理程序方法。显而易见的是,我需要在提交表单之前捕获 URL。我对 Razor 不够熟悉,无法了解是否有事件在加载时触发,或者如何完成此操作。有没有像页面加载事件这样简单的东西?谢谢!
1) 开头为:https://localhost:44384/sign 2) 在提交时采用处理程序名称:https://localhost:44384/Sign?handler=SubmitAndRedirect
<form method="post">
First name:<br>
<input type="text" name="firstname" autocomplete="on" maxlength="10" required><br>
Last name:<br>
<input type="text" name="lastname" autocomplete="on" maxlength="10" required><br>
Employee number:<br>
<input type="text" name="empnum" maxlength="10">
<br>
<br>I agree to the terms above:<br>
<input type="checkbox" name="check" required>
<button type="submit" asp-page-handler="SubmitAndRedirect">Submit and Redirect</button>
</form>
public ActionResult OnPostSubmitAndRedirect()
{
//Capture Form Data and Push to SQL DB
var firstname = Request.Form["firstname"];
var lastname = Request.Form["lastname"];
var empnum = Request.Form["empnum"];
bool isValidUser = ValidateUser(empnum, lastname);
if (isValidUser == true)
{
WriteToDB(firstname, lastname, empnum, url);
return Redirect(hardcoded);
}
else
{
return Redirect("/sign");
}
}
【问题讨论】:
-
哪里需要用到
handler查询参数的值? -
@Justin Turner - 我想你真正想问的是(如何检测请求是否是回发)[stackoverflow.com/questions/47820332/…
-
@gunr2171 我根本不需要使用 handler 参数的值。在用户点击提交 btn 收集相关信息之前,我需要 URL 的参数值。该页面是一个初始屏幕,具有基本形式,用于收集有关连接到公共 wifi 的用户的信息。该页面的前缀为 http:server/node_id=0000000&node_mac=00:00:0a:00:00:00&gateway_id=292928&client_ip=100.00.00 我想获取这些参数。提交表单后,url 显然会发生变化。
-
谢谢大家。我能够解决在 C# 端添加属性的问题,然后通过在段落标记中设置表单外部的属性来在提交表单之前捕获请求。
<p> @{ var QS = Request.QueryString.Value; JT.query = QS; } @*<h1> @JT.query</h1>*@ </p>
标签: c# asp.net asp.net-mvc razor