C# URLreferer在MVC Post控制器操作方法中提交null
我正在将表单从一个mvc应用程序A发布到另一个mvc应用程序B 在B Action方法中,我将urlReferer设置为null 应用程序A代码:C# URLreferer在MVC Post控制器操作方法中提交null,c#,asp.net-mvc,asp.net-mvc-4,C#,Asp.net Mvc,Asp.net Mvc 4,我正在将表单从一个mvc应用程序A发布到另一个mvc应用程序B 在B Action方法中,我将urlReferer设置为null 应用程序A代码: private string BuildPostForm(string Url, string PostData) { try { string formId = "__PostForm"; StringBuilder
private string BuildPostForm(string Url, string PostData)
{
try
{
string formId = "__PostForm";
StringBuilder strForm = new StringBuilder();
strForm.Append(string.Format("<form id=\"{0}\" name=\"{0}\" action=\"{1}\" method=\"POST\">", formId, Url));
string MID = "9820359248";
strForm.Append("<input type=\"hidden\" name=\"" + "merchantRequest" + "\" value=\"" + PostData + "\">");
strForm.Append("<input type=\"hidden\" name=\"" + "MID" + "\" value=\"" + MID + "\">");
//if (PostData != null)
//{
// foreach (string key in PostData)
// {
// strForm.Append("<input type=\"hidden\" name=\"" + key + "\" value=\"" + PostData[key] + "\">");
// }
//}
// strForm.Append("<div id=\"loading\"><p class=\"top1 loading-txt\"> Processing Payment </p><img id=\"loading-image\" src=\"../../Images/ajax-loader.gif\" alt=\"Loading...\" /><p class=\"top2 loading-txt-bottom\">Please do not press on refresh button</p></div>");
strForm.Append("<div class=\"wrapper\"><div class=\"login_wrap loading_wrap\"><div class=\"logo\"> </div><br><p class=\"top1 loading-txt\"> Processing Payment </p><div class=\"sk-spinner sk-spinner-wandering-cubes loading_tp\"><div class=\"sk-cube1\"></div><div class=\"sk-cube2\"></div></div><p class=\"top2 loading-txt-bottom\">Please do not press on refresh button</p></div></div>");
strForm.Append("</form>");
strForm.Append("<link rel=\"stylesheet\" href=\"../../Content/css/PinePGRedirect.css\" type=\"text/css\"/>");
strForm.Append("<link rel=\"stylesheet\" href=\"../../Content/css/loader.css\" type=\"text/css\"/>");
StringBuilder strScript = new StringBuilder();
strScript.Append("<script language=\"javascript\">");
strScript.Append(string.Format("var v{0}=document.{0};", formId));
strScript.Append(string.Format("v{0}.submit();", formId));
strScript.Append("</script>");
return strForm.ToString() + strScript.ToString();
}
catch (Exception ex)
{
return null;
}
}
public override void ExecuteResult(ControllerContext context)
{
var strHtml = "";
strHtml = BuildPostForm(m_Url, m_strPostData);
context.HttpContext.Response.Write(strHtml);
}
获取uri1和str为null。因为您的应用程序A未托管。这些是您的情况:-从https URL切换到http URL。-从https URL切换到其他https URL。-已安装安全软件(防病毒/防火墙/等),将推荐人从所有请求中删除。-在一个代理后面,该代理从所有请求中删除推荐人。看见
[HttpPost]
public ActionResult Index(FormCollection formCollection)
{
try
{
Uri uri1 = HttpContext.Request.UrlReferrer;
string str = Request.ServerVariables["HTTP_REFERER"];
}
catch(Exception ex)
{
}
return View();
}