0

ADギャラリーを使用しています。しかし、私の画像は、製品の作成日と同じ名前のフォルダーにあります。すべてのモデルの画像は@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

使用する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 に答える
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 に答える