2014-10-17 3 views
0

как получить маршрут из url в методе действий при обратной передаче кнопки от Ajax.Beginform?Как получить маршрут из Url в Ajax.BeginForm?

Должен ли я использовать синтаксис ниже? но как получить параметр в routeValues объект с url?

@using (Ajax.BeginForm("Delete", "Author", object routeValues, new AjaxOptions() 
            { 
             UpdateTargetId = "resultmessage", 
             HttpMethod = "Post", 
             InsertionMode = InsertionMode.Replace, 
            } 
            ) 
        ) 
+0

Вы могли бы быть недоразумение. Если у вас есть 'public AtionResult Delete (int ID)', то используйте 'Ajax.BeginForm (« Удалить »,« Автор », новый {ID = SomeValue}, новый AjaxOptions(), ...' или если ваш метод принимает несколько параметров или сложный объект, вы можете передать экземпляр объекта в третьем параметре. –

+0

«SomeValue» находится в моем URL-адресе. Как получить URL-адрес и сохранить его в параметре идентификатора? –

+0

Если _SomeValue = 5_, то в 'public AtionResult Delete (int ID) 'значение ID будет 5 –

ответ

1

Чтобы передать индивидуальные свойства из модели можно использовать

@model AuthorViewModel 
@using (Ajax.BeginForm("Delete", "Author", new { ID = Model.ID }, .... 

, какие должности обратно

public ActionResult Delete(int ID) {... 

Вы также можете передать обратно сложный объект (в том числе самой модели), используя

@using (Ajax.BeginForm("SomeAction", "Author", Model.SomeComplexProperty, .... 

где Model.SomeComplexProperty является TypeOf MyOtherModel, какие посты назад

public ActionResult SomeAction(MyOtherModel model) {... 

, но это работает только тогда, когда все свойства объекта являются примитивными значениями (свойства, которые являются коллекция или сложным объект игнорируется)

+0

Еще одна небольшая мысль. Я знаю, что получил свое решение, но что, если у меня не было Model.Id в моей модели. Может быть, это была какая-то переменная в моем URL-адресе, которую я хочу передать моему методу, тогда как бы передать это значение в 'new {id = ???}' в форме Ajax.BeginForm? –

+0

Вы можете использовать 'ViewBag' так' public ActionResult AuthorDetails (int ID) {ViewBag.ID = ID; var model = ??; return View (модель); } 'в представлении' @using (Ajax.BeginForm («Удалить», «Автор», новый {ID = ViewBag.ID}, .... ' –

+0

Спасибо. Я проверю этот параметр, когда у меня будет этот сценарий который, я уверен, придет. Спасибо еще раз. –

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

  • Нет связанных вопросов^_^