如何制作href链接?

时间:2012-09-03 08:41:43

标签: jquery asp.net-mvc-3 hyperlink html-helper

我使用AD Gallery。但我的图像在文件夹中,名称相同的产品创建日期。 每个模型的图像都在 @ Model.Date.Value.ToShortDateString()命名文件夹中。在这段代码中img src =“”有效,但是href =“”不起作用:

<div class="ad-thumbs">
  <ul class="ad-thumb-list">
     <li>
       <a href="http://localhost:20234/Products/Images + @Model.Date.Value.ToShortDateString() + @Model.ImagePath1">
          <img src="@Url.Content( Path.Combine( "~/Products/Images/", @Model.Date.Value.ToShortDateString(), @Model.ImagePath1 ) )" width="42" height="42" alt=""/>
        </a>
     </li>
  </ul>
</div>

我也试过

<a href="Path.Combine("http://localhost:20234/Products/Images", @Model.Date.Value.ToShortDateString(), @Model.ImagePath1)">
...
</a>

<a href="~/Products/Images" + @Model.Date.Value.ToShortDateString() + @Model.ImagePath1">
...
</a>

在AD图库中向下显示小图像,但不会打开大图像。 如何编写href链接以打开大图像?

2 个答案:

答案 0 :(得分:1)

为什么不使用Jquery?

<a href="#" id="addQuick" date="@Model.Date.Value.ToShortDateString()" path="@Model.ImagePath1" class="callmyJquerymethod">name</a> 

jquery:

 $(document).on("click", ".callmyJquerymethod", function () {
   var requrl = '@Url.Action("redirectoAction", "YourController", null, Request.Url.Scheme, null)';
        $.ajax({
            type: "POST",
            url: requrl,
            data: { date: $(this).attr("date"),path:$(this).attr("path") },
            success: function (data) {
               // q.e.d.
            }
        });

在控制器中:

 public ActionResult redirectoAction(string date, string path)
        {
           string link=string.Format("localhost:20234/Products/Images/{0}/{1},date,path); 
           return Redirect(link);
        }

应该这样做!使用调试器,让我知道它是否到达控制器。

答案 1 :(得分:1)

使用Url.Action

<a href="@Url.Action(Path.Combine("http://localhost:20234/Products/Images", @Model.Date.Value.ToShortDateString(), @Model.ImagePath1))">
...
</a>

另请阅读Razor code between double quotes

更新1:

@Url.Action(string.Format("http://localhost:20234/Products/Images/{0}/{1}", @Model.Date.Value.ToShortDateString(), @Model.ImagePath1))

来自MSDN:

public static string Combine(
    string path1,
    string path2
)

您提供了3个参数。

@Url.Action(Path.Combine("http://localhost:20234/Products/Images", Path.Combine(@Model.Date.Value.ToShortDateString(), @Model.ImagePath1)))

使用Path.Combine

更新2:

<a href="<%=Url.Action(string.Format("~/Products/Images/{0}/{1}" , @Model.Date.Value.ToShortDateString() , @Model.ImagePath1))%>">
...
</a>

更新3:

<a href="<%=Url.Content(string.Format("~/Products/Images/{0}/{1}" , @Model.Date.Value.ToShortDateString() , @Model.ImagePath1))%>">
...
</a>