asp.net-mvc
  • validation
  • client-side
  • 2012-04-22 4 views 1 likes 
    1

    私はasp.netのMVCにstackoverflowのようなupvote-downvoteパネルを作りたいです。それが所有者によってupvotedされている場合は、警告ペインを表示したい。私はEFを使用しています。これは私のアクションリンクです。Upvote-downvoteの検証?

    <a href='@Url.Action("Upvote", "Author")'> 
        <img src='@Url.Content("~/Images/upvote.png")' width="20" height="20" /> 
    </a> 
    

    クライアント側でも、どこからでも検証できますか?クライアント側では、誰からのユーザーIDが投稿されています。私はそれをupvotedしたuserIDを取得したい。論理は何ですか?

    私はそれが明確でない場合it.Andは申し訳ありませんが、私の貧しいEnglish.Alsoは、いずれかが、私の質問を編集することができます行うことができますどのようにないアイデアを持っていないので、私は、より多くのサンプルコードを記述傾けます。

    ありがとうございました。

    答えて

    2

    が、あなたはありますので、それを確認するために、再びサーバー上で、なぜサーバーがそれをとにかく処理させるのではないのでしょうか。あなたが(なぜあなたはありません)投票を記録するために、AJAXを使用していない場合、それは単にチェックを行うと、投票が記録されなかった理由を示すメッセージとビューをレンダリングの問題です。あなたは(あなたのために良い)AJAXを使用している場合は、投票の記録アクションが投票を記録し、その理由は、ダイアログにメッセージを表示していなかったことを示すステータスでいくつかのJSONを返すがあります。あなたがデータを使用する場合があります。後者の場合には

    は、それが簡単にAJAX要求を形成するために作るためにいくつかの情報を記録するための属性。

    <a href='@Url.Action("Upvote", "Author")' data-vote-type="up" class="vote-button"> 
        <img src='@Url.Content("~/Images/upvote.png")' width="20" height="20" /> 
    </a> 
    
    
    $('.vote-button').on('click', function() { 
        var $this = $(this), 
         href = $this.attr('href'), 
         voteType = $this.data('vote-type'); 
        $.post(href,{ "voteType": voteType }, function(result) { 
         if (!result.Success) { // failed, show message 
          $('<div title="error"><p>' + result.Message + '</p></div>') 
            .dialog({ 
            autoOpen: true, 
            modal: true, 
            resizable: false, 
            ... 
            }); 
         } 
         else { // mark vote as recorded 
          $('.vote-button').removeClass('active'); 
          $this.addClass('active'); 
         } 
        }); 
    }); 
    
    0

    あなたがソースのどこかで、現在ログイン中のユーザーIDを埋め込むことができます:あなたは、現在のページ上のユーザIDでログインを使用することができ

    <html data-user-id="@CurrentUser.Id"> 
    
    var me = $('html').data('user-id'); 
    
    +0

    これは投稿者のユーザーIDです。@ Model.Users.TBL_USER_INFORMATIONS.UserID現在のユーザーと比較するにはどうすればよいですか。私はこのトピックについて新しいです。 –

    +1

    あなたはJavascriptを学ぶ必要があります。 – SLaks

    関連する問題