我正在使用一些MVC和一些Webforms屏幕编写混合应用程序。我需要在隐藏字段中调用带有ReturnUrl的WebForms屏幕。我想在转回它之前验证ReturnUrl。 MVC有一个Url.IsLocalUrl函数,但它似乎不适用于WebForm屏幕,因此我使用了UrlHelper类。但是当我使用它时,我得到一个NullReferenceException:
UrlHelper url = new UrlHelper();
if (url(validaddr)) <--- get NullReferenceException
{
}
有什么想法吗?
答案 0 :(得分:0)
代码应该是:
UrlHelper url = new UrlHelper();
if (url.IsLocalUrl(validaddr)) <--- get NullReferenceException
{
}
答案 1 :(得分:0)
我使用以下扩展方法来验证Web表单中的本地URL。希望这对您也有帮助。
public static bool IsLocalURL(this string _url)
{
bool flag = false;
try
{
var url = new Uri(_url);
var ctx = HttpContext.Current;
if (url.Host.Equals(ctx.Request.Url.Host) && url.Port.Equals(ctx.Request.Url.Port))
flag = true;
}
catch { }
return flag;
}
此扩展方法适用于字符串。您也可以为Uri类创建类似的内容。