C#MVC5在视图中显示字符串URL

时间:2017-12-05 12:38:00

标签: c# asp.net-mvc asp.net-mvc-5

我是asp.Net MVC5的开发者。
在我的MVC项目中,我使用Web服务返回一个URL来自另一个域的字符串URL。

我想转到这个网址。

为了清楚自己: 客户端填写表单主页并按提交,在服务器端我发送请求Web 使用表单中的参数进行服务,并使用另一个域获取URL,此URL需要作为第二页提供给客户端

public class HomeController : Controller
{
    public ActionResult Home()
    {
        return View("~/Views/Home/home.cshtml");
    }

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult doSomething(Something obj)
    {
        //use web service and get string URL
        string urlString = ;// get from the web service response.
        return View();// want write in the ();
    }
}

2 个答案:

答案 0 :(得分:1)

这对于MVC中的导航也很有用。

(YourActivityName)Forms.Context;

答案 1 :(得分:0)

  

该网址来自其他网站不是同一个网域

如果要重定向到外部网址,则需要使用Redirect()方法。

像这样:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult DoSomething(Something obj)
{
    // Use web service to get the string URL
    string urlString = ...;

    if (string.IsNullOrEmpty(urlString))
    {
        // If the urlString is empty, take the user to an Error View.
        return View("Error");        
    }

    // Redirect the user to the urlString
    return Redirect(urlString);
}

我建议也做一些检查以确保URL绝对有效。您可以使用Uri static方法IsWellFormedUriString()执行此操作 - 这会返回bool

像这样:

if (!Uri.IsWellFormedUriString(urlString, UrlKind.Absolute))
{
    // If the urlString is not a well-formed Uri, take the user to an Error View
    return View("Error");
}

// Redirect the user to the urlString
return Redirect(urlString);

或者,如果您要重定向到内部操作,请使用RedirectToAction()方法,如@ankur所示。

另外注意:确保您的C#方法名称使用PascalCase。为局部变量/私有字段保留camelCase

所以,你会使用DoSomething(...),而不是doSomething(...)(我已经在我的例子中做过这个)。

希望这有帮助。