Могут ли кнопки отправки в формах Ajax иметь свой атрибут name? - PullRequest
1 голос
/ 25 июля 2010

у меня есть следующая форма

<form action="ManageLink" method="post">
    <input name="artistName" type="text"/>
    <input name="songName" type="text"/>
    <input name="url" type="text"/>
    <input name="action" id="save" type="submit" value="Save"/>
    <input name="action" id="delete" type="submit" value="Delete"/>
</form>

с этой подписью для метода действия

public JavaScriptResult ManageLink(string artistName, string songName, string url, string action)

Я называю кнопки отправки, чтобы я мог знать, какая из них была нажата, и действовать соответственно.

Я пытаюсь превратить это в форму ajax, как показано ниже

<% using (Ajax.BeginForm("ManageLink", new AjaxOptions()))
   { %>
        <input name="artistName" type="text"/>
        <input name="songName" type="text"/>
        <input name="url" type="text"/>

        <input name="action" type="submit" value="Save"/>
        <input name="action" type="submit" value="Delete"/>
<% } %>

однако я получаю ошибку в коде MicrosoftAjax.js.

Если я удаляю свойство name = "action", я не получаю сообщение об ошибке, но тогда я не могу сказать, какая кнопка была нажата.

Что-то не так в коде выше? Или есть лучший подход, который я могу использовать, чтобы определить, какая кнопка была нажата?

1 Ответ

0 голосов
/ 26 июля 2010

Попробуйте это:

<input name="save" type="submit" value="Save" />
<input name="delete" type="submit" value="Delete" />

и в вашем действии:

public ActionResult ManageLink(string artistName, string songName, string url)
{
    if (!string.IsNullOrEmpty(Request["save"]))
    {
        // Save was clicked
    }
    else if (!string.IsNullOrEmpty(Request["delete"]))
    {
        // Delete was clicked
    }
    return View();
}

или, если вы предпочитаете аргументы действия:

public ActionResult ManageLink(string artistName, string songName, string url, string save, string delete)
{
    if (!string.IsNullOrEmpty(save))
    {
        // Save was clicked
    }
    else if (!string.IsNullOrEmpty(delete))
    {
        // Delete was clicked
    }
    return View();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...