从操作方法获得点击时获得锚标签href

问题描述 投票:0回答:1

我有一个网格,其中包括超链接行以下的内容,目前,对于所有行,我们都有相同的超链接,并且只有ID发生了变化,并且工作正常。

<a href=" + @ViewBag.Url+ ID + " target='_blank'>Test</a>

现在,对于每一行,我们都有不同的链接URL,当我传递ID时,将从操作方法中获取该URL。我想调用MVC操作方法来获取超链接URL,然后在另一个选项卡中打开它。如何实现?我尝试了这个,但是没有打开超链接?

<div class="row">
    <div class="col-md-4">
        <a href="@Url.Action("GetUrl", "Home",new { id = 1 })">Click Here</a>;
    </div>
</div>

 public string GetPDFUrl(string id)
        {

            return "test.com" + id;
        }
c# asp.net asp.net-mvc asp.net-mvc-4 model-view-controller
1个回答
0
投票

有几种方法可以解决您的问题。其中之一是使用子动作。将生成的URL部分放在局部视图中,以将逻辑放入操作方法中。因此,创建一个只能在您的视图中调用的子操作方法。

    [ChildActionOnly]
    public ActionResult GenerateUrlPartial(int id)
    {
        var generatedUrl = "";//your url business is here
        var model = new UrlInfo { Url = generatedUrl };
        return PartialView(model);
    }

然后创建GenerateUrlPartial.cshtml部分视图:

@model UrlInfo
@{
   Layout = null;
   ViewBag.Title = "GenerateUrlPartial";
 }

<div class="row">
    <div class="col-md-4">
        <a href="@Model.Url">Click Here</a>;
    </div>
</div>

然后在循环中,像这样调用action方法:

@for (int i = 0; i < 10; i++)
{
     Html.RenderAction("GenerateUrlPartial", new { id = i });
}

希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.