在mvc中更改服务器端值并重新加载视图

时间:2011-02-20 13:16:19

标签: jquery asp.net asp.net-mvc

大家好:我在mmy MVC视图中有这样的条件:

if(Profile.visStats == 0)

 <img id="image1" alt="" class="statbackground" src="leftblueFolder.png"/>

否则

 <img id="image2" alt="" class="statbackground" src="rightblueFolder.png"/>  

这很好用。

现在我有两个链接按钮

<a id="visGamebut" runat="server"  >Game</a>
<a id="visSeasonbut" runat="server">Season</a>

1)onclick visGame但我想让Profile.visStats = 1并显示image2如何做到这一点

1 个答案:

答案 0 :(得分:0)

假设您有一个名为ProfileController的控制器。添加一个将从客户端处理更新的方法:

public JsonResult UpdateStats()
{
    Profile profile = fetch profile from somewhere;
    profile.visStats = 1;
    //save to db
    return Json(new {result = true});
}

在您的视图中,将以下代码添加到<script>标记中,以执行ajax调用:

$(function(){ //code should run on document load
  $('#visGamebut').click(function(){ //Attach click handler to the visGamebut link
    $.post('/Profile/UpdateStats', function(data){ //Perform ajax call to the server
      if(data.result){ 
        $(this).unbind('click'); //Unbind the click hander, not to run again on future clicks
        $('#image1').attr('src', 'rightblueFolder.png'); //update img source to image2
      }
    });
  });
});