2015-03-17 6 views
0

я имею сложности аксессоры в модели:Изменить Accessor, нажав на гиперссылку

public int Difficulty 
{ 
    get; 
    set; 
} 

Мой HTML выглядит следующим образом:

<a href="#" onclick="easy()">Easy</a> 
<a href="#" onclick="average()">Average</a> 
<a href="#" onclick="hard()">Hard</a> 

Тогда я хочу, чтобы изменить значение с трудностью, нажав любой из ссылок. Я попытался сделать это со сценарием ниже, но он, очевидно, не работает. Как мне это сделать?

function easy() { 
    @Model.Difficulty = 15 
    location.reload(); 
} 
function average() { 
    @Model.Difficulty = 30 
    location.reload(); 
} 
function hard() { 
    @Model.Difficulty = 45 
    location.reload(); 
} 
+1

стороне клиента кода не может внести изменения в набор переменных серверного кода. Вам нужно сделать запрос AJAX. –

ответ

1

Вы можете сделать АЯКС просьбой об

function easy() 
{ 
    var difficulty = 15; 
    changeDifficulty(); 
} 

function changeDifficulty() 
{ 
    var serviceURL = '/Controller/changeDifficulty'; 
    $.ajax({ 
     url: serviceURL, 
     data: { d: difficulty }, 
     type: 'POST', 
     success: function() { 
      alert("Success"); 
     }, 
     error: function() { 
      alert("Something went wrong"); 
     } 
    }); 
} 

В контроллере

public void changeDifficulty(int d) 
{ 
    //Update your model here 
} 
+0

Поскольку вы уже используете Razor, вы должны позволить ему сгенерировать URL-адреса: var serviceURL = '@ Url.Action ("ControllerName", "ActionName")' – JPG

Смежные вопросы