Как перемещать Id статьи списка и перемещать это controllador?

Хорошие люди тема такая:

У меня есть этот метод, который приносит следующий список с SQL:

public ActionResult Index()
{
    return View(db.ZService.ToList());
}

будь готова она названа с другого вида посредством Аякса:

<script type="text/javascript">
function GetAjax()
{
//toma la acción y el controllador donde se encuentra

    $.get('@Url.Action("Index","ZServices")', function (data) {
        $("#ajaxcontent").html(data);
    });
}
</script>

у каждой статьи списка есть кнопка "Agregar", что я хочу, состоит в том, чтобы, когда он нажмет на эту кнопку, он смог получать Id этой статьи в особенности и мочь перемещать это controllador, чтобы делать новую консультацию:

[HttpPost]
public ActionResult Agregar(string id)
{
    var q = (from g in db.ZService 
             join ga in db.ZServiceOptions on   
             g.serviceid equals ga.serviceid where ga.value == id /*aca iría el id que tomaría dinámicamente*/ 
             select g).ToList();

        //q.CommandType = CommandType.StoredProcedure;

        return View(q);
}

Это был бы вид html списка с Вашей кнопкой

@foreach (var item in Model)
{
  <ul>
    <li>
        <span>@Html.DisplayFor(modelItem => item.name)</span>
        <a type="submit" class="btnagre" name="Guardar"
           value="Agregar">agregar</a> 
    </li>
  </ul>
}

У кого-то какая-то идея есть?

3
задан 05.01.2016, 06:37
3 ответа

То, что ты можешь делать, состоит в том, чтобы посылать id в Action Добавлять таким образом, заменяя <a ...> ... </a> из-за следующего:

Используя Тмл Ельпер

@Html.ActionLink("Guardar", "Agregar", new { id = item.Id },
                                       new { @class = "btnagre", @name = "Guardar" })

html helper ActionLink() он позволяет тебе происходить в Вашем третьем параметре routeValues в том же самом ты можешь определять параметры маршрута, в твоем случае параметр Action Добавлять. Видеть в MSDN

В четвертом параметре ты определяешь htmlAttributes, как например класс CSS что использовал бы, и который я назвал, или пойдите у него будет это соединение.

Не используя Тмл Ельпер

<a href="~/TuController/Agregar/@item.Id" class="btnGrande" name="Guardar">Guardar</a>

Внимание: Не, поскольку его зовут твой contorller, в любом случае замени в href TuController из-за, поскольку он назвался.

4
ответ дан 24.11.2019, 15:01
  • 1
    Функционируй в perfecci и # 243; n, большое спасибо! –  Andromeda 05.01.2016, 21:18
  • 2
    потому что ты снял получающий ответ? у тебя были alg и # 250; n проблема? –  Alan 04.03.2016, 17:15
  • 3
    Прощение, от меня убежал click. –  Andromeda 04.03.2016, 17:50
  • 4
    Не беспокойся, pens и # 233; что уже не ты serv и # 237; в ответ и ты нуждался в руке. –  Alan 04.03.2016, 17:52

то, что deberГ-схвати реализации, состоит в том, чтобы включать в вид id статьи, что estarГ-схвати это звоня из-за onclick botГіn.

       @foreach (var item in Model) { <ul>
<li>
    <span>@Html.DisplayFor(modelItem => item.name)</span>
  <a type="submit" class="btnagre" name="Guardar" onclick="otroMetodo(@item.id)" value="Agregar">agregar</a>
</li> </ul>  }
0
ответ дан 24.11.2019, 15:01
  • 1
    Это env и # 237; в id в funci и # 243; n язык сценариев JavaScript не в Action Agregar –  Carlos Muñoz 05.01.2016, 00:51

Сначала, я не использовал бы helpers, как они рекомендуют тебя более наверху, они удобные и очень полезные, но в случае, если в какой-то день ты будешь должен мигрировать твои совещания, ты будешь сильно соединена этих в Framework/librería. Из-за чего ты было бы очень обременительным делать возможную миграцию в другой атмосфере (я изменяю язык, framework, книжный магазин, и т.д.)

И чтобы отвечать твой вопрос, что я сделал бы, состояло бы в том, чтобы добавлять признак к элементу в (или в Вашем недостатке использовать href всей жизни), чтобы потом пересылать ввиду типа Get, который отвечал бы на этот запрос, или отменять Get и получать этот href, чтобы идти искать вид / данного из-за ajax и например, обрабатывать и показывать их в popup.

Привет.

-1
ответ дан 24.11.2019, 15:01