Я новичок в ASP.NET MVC. Я делаю свое веб-приложение и хочу реализовать добавление друзей из списка, а после нажатия ссылки «Dodaj» (на английском языке: «Добавить») Я хочу сохранить своего друга, но оставайтесь на одной странице и просто обновляйте свой список. Как остаться на одной странице после нажатия на ActionLink в ASP.NET MVC?
В моей Profil.cshtml у меня есть:
@foreach (var item in Model.neprijatelji)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.IME_GOSTA)
</td>
<td>
@Html.DisplayFor(modelItem => item.PREZIME_GOSTA)
</td>
<td>
@Html.ActionLink("Dodaj", "Dodaj", new { id = item.EMAIL_GOSTA })
</td>
</tr>
}
В Мой ProfilController.cs Действие Dodaj У меня есть это:
[HttpPost]
public ActionResult Dodaj(string id)
{
string posiljalac = Session["idGosta"].ToString();
PRIJATELJI pr = new PRIJATELJI();
pr.EMAIL_GOSTA = posiljalac;
pr.EMAIL_GOSTA1 = id;
pr.PRIJATELJI_OD = System.DateTime.Now;
db.PRIJATELJIs.Add(pr);
db.SaveChanges();
return RedirectToAction("Profil"); //O just want to do some change and stay on same page
}
Что я получаю в качестве результата Ошибка 404 не найден. Я знаю, что это неправильно, но как я должен это реализовать?
UPDATE: Вот что я пытаюсь: В моей Profil.cshtml я сделал: Вот что я пытаюсь: В Profil.cshtml у меня есть это:
@foreach (var item in Model.neprijatelji)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.IME_GOSTA)
</td>
<td>
@Html.DisplayFor(modelItem => item.PREZIME_GOSTA)
</td>
<td>
<a href="#" onclick="AddFriend(this)" data-id='@item.EMAIL_GOSTA' > Dodaj </a>
<script>
function AddFriend(ele)
{
var values={id:$(ele).attr('data-id')};
$.post("/Profil/Dodaj", values, function (abc) {
var result=$.parseJSON(abc)
if (result.isAdded == "success") { alert("I just added this alert that my if isn't empty"); }
//Logic to append tr to existing table
else { alert("Some alert"); }
//raise exception or alert maybe.
});
}
</script>
</td>
В мой ProfilController я это:
public JsonResult Dodaj(string id)
{
string posiljalac = Session["idGosta"].ToString();
PRIJATELJI pr = new PRIJATELJI();
pr.EMAIL_GOSTA = posiljalac;
pr.EMAIL_GOSTA1 = id;
pr.PRIJATELJI_OD = System.DateTime.Now;
try
{
db.PRIJATELJIs.Add(pr);
db.SaveChanges();
return Json(new { isAdded = "success" }, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
return Json(new { isAdded = "failure" }, JsonRequestBehavior.AllowGet);
}
}
Когда я ставлю точку останова на функции JavaScript я получаю: точки останова не будет удар не исполняемый код не является ssociated с этой линией
Когда я нажимаю на «Dodaj», кажется, что она признает только HREF = «#», потому что по ссылке: http://localhost:50884/Profil/Profil тогда я получаю http://localhost:50884/Profil/Profil#
Кроме того, я должен сделать некоторые дополнительные настройки чтобы мой код JavaScript работал. Должен ли я сохранить код JS в другом файле, то Profil.cshtml?
- это действие «Profil» в том же контроллере, что и «Dodaj»? Если нет, вы должны явно указать имя контроллера, в котором находится «Profil». В противном случае вы будете продолжать получать 404 ошибки –
В отношении того, чтобы оставаться на одной странице при попытке добавить кого-то в список, вы можете захотеть заглянуть в [ajax] (http://api.jquery.com/jQuery.ajax /) –
«Додай» находится в том же контроллере, что и «Профили». – acogrunge