MVC

2016-11-24 8 views
2

これは私のイメージである:MVC

<img id="1star" src="~/Content/Images/emptystar.png" onmouseover="setStars(1)" onmouseout="setStarsBack()" onclick="location.href='@Url.Action("SetRating", "CreativeModels", new { id = GlobalVariables.CurrentBookId, rating = 1 })'" /> 

これは、画像ソースを変更する必要がある関数のコードです:

function setStars(amount) { 
    if (amount > 0) { 
    document.getElementById("1star").src = "~/Content/Images/filledstar.png"; 
    } 
} 

それは変わりますが、ブラウザは言う、ということ画像をロードできません。これは、画像にマウスを移動した後に示したものをブラウザです:

image of what browser shows

そして、これはイメージが彼らにマウスを移動する前に見てどのようにの画像です:

image with starts rendered

どのように私はsrcプロパティを変更する必要があります?

答えて

0

問題はsrc属性ではありません。それはあなたが設定したものに正しく変更されます。問題は、間違ったディレクトリを指していることです。

あなたのMVCソリューションでカミソリを使用していると仮定すると、これを試してみる:

function setStars(amount) { 
    if (amount > 0) { 
    document.getElementById("1star").src = "@Url.Content("~/Content/Images/filledstar.png")"; 
    } 
} 
+0

ありがとう、それは私の問題を解決! –

0

イメージURLの現在のhtmlファイルの位置を基準にすることができます。実際には、画像URL~を使用すると、現在のユーザーホームフォルダの下にあるとみなされます。しかし、ユーザーが変更された場合、~は新しいユーザーのホームフォルダを指します。

私はこれまでsrcタグの現在の値を変更するためにあなたにお勧め:

<pathOfHtmlFile>/Content/Images/filledstar.png 

をしてhtmlファイルがコンピュータに置かれているパスで<pathOfHtmlFile>を交換してください。

+0

を、私はそれが "'に変更さE:/ Kursovoi /スーパーバックアップ/ Eksperement C vistavleniem otsenok/WebApplication4/WebApplication4 /ビュー/ CreativeModels/Content/Images/emptystar.png "、しかし何も変わりません。私はブラウザは、私は持っていないサーバー上の写真にしかアクセスできないと思う。私はHTMLファイルを持っていない、私はcshtmlファイルを持っています。 –

+0

@VladimirMootinこれはサーバーの問題ではないため、私は自分のPCで問題を再現しようとしましたが、予期した結果が得られました。あなたの質問にあなたのブラウザコンソールの出力を追加できますか?これは問題の解決に役立ちます。 – Danibix