0

我使用广告库。但我的图像位于名称等于产品创建日期的文件夹中。每个模型的图像都在@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 链接以打开大图像?

4

2 回答 2

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);
        }

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

于 2012-09-03T08:44:00.693 回答
1

采用Url.Action

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

另请阅读双引号之间的 Razor 代码

更新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>
于 2012-09-03T08:44:19.200 回答