Ответ 1
Попробуйте вот так:
<%= Html.ActionLink(
"Delete",
"DeleteUser",
"Account",
new {
uname = item.UserName
},
new {
onclick = "return confirm('Are you sure you want to delete this User?');"
}
) %>
Затем убедитесь, что сгенерированная ссылка верна:
<a href="/Account.aspx/DeleteUser/foo" onclick="return confirm('Are you sure you want to delete this User?');">Delete</a>
Также обратите внимание, что использование простого GET-глагола для действия, которое изменяет состояние на сервере, не рекомендуется.
Вот что я вам порекомендую:
[HttpDelete]
public ActionResult DeleteUser(string uname)
{
//delete user
}
и в представлении:
<% using (Html.BeginForm(
"DeleteUser",
"Account",
new { uname = item.UserName },
FormMethod.Post,
new { id = "myform" })
) { %>
<%= Html.HttpMethodOverride(HttpVerbs.Delete) %>
<input type="submit" value="Delete" />
<% } %>
и в отдельном файле javascript:
$(function() {
$('#myform').submit(function() {
return confirm('Are you sure you want to delete this User?');
});
});
Вы также можете рассмотреть возможность добавления токена анти-подделки для защиты этого действия от атак CSRF.