【问题标题】:getting anchor tag href on click from Action Method从动作方法点击获取锚标签href
【发布时间】:2019-12-10 04:45:40
【问题描述】:

我有一个网格,其中包括下面的超链接行,目前对于所有行,我们都有相同的超链接,只有 ID 正在改变,它工作正常。

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

现在对于每一行,我们都有不同的链接 url,当我传递 ID 时,我会从 action 方法中获得。 我想调用 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】:

有几种方法可以解决您的问题。其中之一是使用子动作。 将您生成的 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 });
}

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 2015-10-07
    • 2010-11-10
    • 1970-01-01
    • 2018-08-28
    相关资源
    最近更新 更多