передать параметр из вида в контроллер бритвы - PullRequest
0 голосов
/ 23 февраля 2012

Я бы хотел передать параметр из представления в контроллер на странице cshtml. Вот код, который у меня есть:

<script type="text/javascript">
    function Test() {

        $.get(        
        "@Url.Action("UpdateReport/", "Report")"                 
    );
    }

</script>

<h2>Reports</h2>

@foreach (var item in Model)
{
    <div>@Html.ActionLink(@item.Name, "ActionCall", "Report", new { Id = @item.Id }, null )</div><br /><br />
                <input type="button" class="button1" value="Insert" />
                <input type="button" class="button1" value="Delete" />
                <input type="button" onclick="Test()" class="button1" value="Update" />     
}

Когда я нажимаю кнопку обновления, я хочу передать @ item.Id в действие контроллера через имеющийся у меня код JS. Код вступает в действие контроллера сейчас, но без параметров. Я также хочу передать параметр. Заранее благодарим за каждый совет, Laziale

public ActionResult UpdateReport(string name)
        {
            return View("Index");
        }

Ответы [ 5 ]

1 голос
/ 01 ноября 2013

1001 *
*

Просмотр: В представлении «категория» параметр передается в контроллер с «admin» значением

@{ Html.RenderAction("Menu", "Nav", new { category = "admin" }); }


Контроллер: В контроллере «категория» получено значение параметра.

public PartialViewResult Menu(string category, string menu = null)
{
     IEnumerable<Menu> menus = repository.Menus
    .Select(x => x)
    .Where(x => (x.MenuCategory == category)
    .OrderBy(x => x.MenuSequence).ToList(); 
     return PartialView(menus);
}


1 голос
/ 23 февраля 2012
<script type="text/javascript">
    function Test() {

        $.get(        
            "@Url.Action("UpdateReport/", "Report")",
            {Id : @item.Id}                 
        );
    }
</script>

или:

<script type="text/javascript">
    function Test() {

        $.get(        
            "@Url.Action("UpdateReport/", "Report", new {Id = item.Id})"
        );
    }
</script>
0 голосов
/ 23 февраля 2012

вы можете использовать $ .post

<script type="text/javascript">
    function Test() {

        var itemId = $('#MyButton').attr('itemid');
            var url = '@Url.Action("UpdateReport", "Outcome")';
            var data = { Id:itemId };
              $.post(url, data, function (result) {
                  var id = '#postedFor' + postId;
                  $(id).html(result);

            });                 
    );
    }

</script>

и привязать идентификатор элемента к вашему вводу

<input id="MyButton" itemid="@Html.Raw("postedFor" + Model.Id)" type="button" onclick="Test()" class="button1" value="Update" />
0 голосов
/ 23 февраля 2012

Попробуйте этот код в своей функции JavaScript:

$.get('Report/UpdateReport?paramName=paramValue', function(data) {
  //Do something with "data"
});

Где paramName - имя параметра в действии контроллера, значение - текущее значение, которое вы хотите передать.Данные, возвращаемые контроллером, помещаются в переменную «data».

0 голосов
/ 23 февраля 2012

Добавить новый элемент значения маршрута с именем Id

<script type="text/javascript">
function Test() {

    $.get(        
    "@Url.Action("Update", "Report", new { @id = item.Id })"                 
);
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...