Почему моя форма вызывает неправильное действие контроллера? - PullRequest
0 голосов
/ 23 декабря 2010

Эта форма имеет несколько кнопок отправки, при нажатии она вызывает простую функцию JavaScript для изменения значения скрытого ввода (функция называется «setHidden». Это работало до того, как после некоторого другого неактуального кода она перестала работать , По сути, действие, которое оно должно вызывать, никогда не вызывается, вместо этого оно по умолчанию возвращается к предыдущему URL.

Форма:

<form action="/League/RemoveOwner" method="post">
    <input type="hidden" value="1007" name="lid"/>
    <input type="hidden" value="0" id="index" name="index"/>
    <input type="image" src="../../Resources/Images/Delete.png"
           height="12" alt="Remove Owner" title="Remove Owner"
           onclick="setHidden('index', '1031')"/></a> coach<br />
</form>

Контроллер:

[HttpPost]
public ActionResult RemoveOwner(int id, string index)
{
    //yada
    return PartialView();
}

При нажатии на изображение, он должен вызвать контроллер удаления владельца, вместо этого он вызывает контроллер «Просмотр»:

public ActionResult View(int id)  {  
//yada
return View();
}

Ответы [ 2 ]

0 голосов
/ 23 декабря 2010

Еще одно предложение для кода действия формы - не пишите абсолютный путь для действия формы.Вы можете использовать Html.BeginForm () или записать URL своего сайта в web.config и извлечь его в Application ["URL"], пока приложение запускается в global.ascx.Тогда ваша форма должна выглядеть следующим образом:

<form action="<%=Application["URL"]%>League/RemoveOwner">

При таком подходе можно избежать некоторых ошибок при публикации на IIS или другом веб-сервере.

0 голосов
/ 23 декабря 2010

После поиска высоко и низко я наконец нашел проблему.На странице была другая форма, у которой не было закрывающего тега.Эта форма должна была вернуть его контроллеру «Вид».Это было частично, поэтому я не уловил его до ... ну, пока я не разбил свой мозг в течение 2 часов ...

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