Использование 2 кнопок отправки в одной строке с другой функцией в MVC - PullRequest
0 голосов
/ 17 марта 2020

В моем просмотре я использовал 2 кнопки отправки, Поиск и сброс

    <p>
        Name: @Html.TextBox("searcher", (string) ViewBag.searchValue) 
                <input type="submit" value="Search" /><input type="submit" name="Reset" value="Default" />
    </p>

И в контроллере я назначаю кнопку По умолчанию , чтобы очистить все searchValue и Parameter.

        [HttpPost, HttpParamAction]
        public ActionResult Reset()
        {
            ViewBag.searchValue = "";
            Index("", "", "");
            return View();
        }

Однако результат вместо очистки всех параметров и searchValue, кнопка По умолчанию теперь просто действует как другая кнопка Поиск . Я импортировал System.Reflection в моем контроллере

Ответы [ 2 ]

1 голос
/ 18 марта 2020

Я пытаюсь следующим образом,

Модель: Product.cs

public class Product
{
    public string ID { get; set; }
    public string Name { get; set; }
    public string Brand { get; set; }
    public string Price { get; set; }
}

Контроллер: HomeController.cs

 [HttpPost]
 public ActionResult SaveProduct(Product obj)
 {
     ViewBag.Message = "Product saved successfully!";
     return View("Index", obj);
 }

[HttpPost]
public ActionResult CancelProduct(Product obj)
{
    ViewBag.Message = "The operation was cancelled!";
    return View("Index", obj);
}

Просмотр: index.cs html

@model ViewBag_array.Models.Product

<h1>@ViewBag.Message</h1>
@Html.DisplayForModel()

@using (Html.BeginForm("", "Home"))
{
    @Html.EditorForModel()
    <br />
    <input type="submit" name="save" value="Save" formaction="SaveProduct" formmethod="post" />
    <input type="submit" name="cancel" value="Cancel" formaction="CancelProduct" formmethod="post" />
}

Таким образом вы получаете четкое разделение проблем, и код становится более читабельным.

0 голосов
/ 17 марта 2020

Кнопка ввода поможет вам.

<input type="button"
         name="Reset" value="Default"
         onclick="location.href='<%: Url.Action("Reset", "Controller") %>'" />
...