0

これは私のビューコードの一部です:

<%int imageTypSelected = 0; %>  



<div class="imageToEdit" >
         <img src='<%: Url.Action("getImg", "Product", new{ShopId = Model.Id}) %>'   alt="" />
         <a href="#" id="1" onclick="jQuery('#dialog').dialog('open'); '<%:imageTypSelected=1 %>'; return false;  ">G</a>             
    </div>

    <div   >
         <img src='<%: Url.Action("getImg_Alt1", "Product", new{ShopId = Model.Id}) %>'   alt="" />
         <a href="#" id="2"  onclick="jQuery('#dialog').dialog('open'); '<%:imageTypSelected=2 %>'; return false; " >G</a>           
    </div>

    <div  >
         <img src='<%: Url.Action("getImg_Alt2", "Product", new{ShopId = Model.Id}) %>'   alt="" />
         <a href="#" id="3"  onclick="jQuery('#dialog').dialog('open'); '<%:imageTypSelected=3 %>'; return false; ">G</a>            
    </div>



 <div id="dialog" title="A" >
          <% using (Html.BeginForm("changeProductImage", "Product", new { @Id = Model.Id, @selectedHyperLink = imageTypSelected }, FormMethod.Post, new { enctype = "multipart/form-data" }))
               {%>
                <p><input type="file" id="fileUpload" name="fileUpload" style="width:23;"/> </p>
                <p><input type="submit" value="B" /></p>
          <% } %>

       </div>

最初にクリックすることにより、変数は1imageTypSelectedに設定する必要があります。2番目にクリックすることにより、3に設定する必要があり、3番目をクリックすることにより、3に設定する必要があります。ただし、常に値のみが3変数に割り当てられ、他の値をクリックしても変数には影響しません。なにが問題ですか?

4

1 に答える 1

1

サーバー側のコードとクライアント側のコードを混同しています。

imageTypSelectedサーバー上にのみ存在します。ブラウザのリンクをクリックしても変更されません。これはjavascriptで完全に行う必要があります。

フォームからこれを削除します。

@selectedHyperLink = imageTypSelected

そして、この隠しフィールドを追加します。

<input type="hidden" id="selectedhyperlink" name="selectedhyperlink" />

非表示フィールドを正しい値に設定する次のJavaScript関数を追加します。

<script type="text/javascript">
    function changeImageType(imageType) {
        jQuery("#selectedhyperlink").val(imageType);
        jQuery("#dialog").dialog("open");

        return false;
    }
</script>

リンクからこの関数を呼び出します。

<a href="#" id="2" onclick="return changeImageType(2);">G</a>  
于 2012-12-02T21:56:27.290 に答える