我从我的http://localhost/Case/Form
我的serviceController类:
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();
}
[...]
我在MailHelper.cs中打电话给他:
private static string domain = new ServicesController().GetDomain();
但是因为Request为null而发生异常......
所以,我的问题是,为什么Request为空? 它是仅在当前视图控制器中分配的,所以这里仅在我的CaseController中吗?
答案 0 :(得分:0)
您正在创建一个与请求无关的新控制器。
而不是将get域放在控制器中然后创建一个新域,
您只需通过HttpContext.Current.Request
访问当前请求即可。
这也可以通过静态方法获得。