为什么请求在我的控制器中为空

本文关键字:控制器 我的 请求 为什么 | 更新日期: 2023-09-27 18:30:33

我从我的视图http://localhost/Case/Form在我的服务控制器中通过 HttpPost 调用一个方法

我的服务控制器类:

using System.Web;
using System.Web.Mvc;
[...]
namespace ApnNephro.WebUI.Controllers
{
    public class ServicesController : Controller
    {
        public string GetDomain()
        {
            string url = "";
            try
            {
                string _url = Request.Url.AbsolutePath;
                int _si = (_url.IndexOf("//"));
                int _fi = (_url.Substring(_si + 2)).IndexOf("/"); // first /
                url = _url.Substring(0, _fi + _si + 2);
                return url.ToString();
            }
            catch (InvalidOperationException ioe)
            {
                throw new Exception(ioe.Message + " / " + ioe.StackTrace);
            }
            catch (Exception e)
            {    
                throw new Exception(e.Message + " / " + e.StackTrace);
            }
            return url.ToString();
        }
[...]

我在我的邮件助手中打电话给他.cs :

private static string domain = new ServicesController().GetDomain();

但是发生了异常,因为请求为空...

所以,我的问题是,为什么请求为空?它是否仅在当前视图控制器中分配,因此仅在我的案例控制器中分配?

为什么请求在我的控制器中为空

您正在创建一个与请求无关的新控制器。而不是将 get 域放在控制器中,然后创建一个新域控制器,您可以通过HttpContext.Current.Request访问当前请求。这在静态方法中也可用。