我正在从事C#项目。在我的ReglasDispositivos视图中,客户端可以执行三种不同的操作:添加设备,更新设备并删除一次。控制器通过传递ClienteReglasDispositivos模型来调用ReglasDispositivos()(获取)视图。例如,让我们开始添加设备。如何发布客户发布的信息? 如果我的视图只有一个动作,那么我知道我必须添加控制器[HttpPost]和[HttpGet] ReglasDispositivos()方法。但是,当一个视图具有三个不同的动作时?
ClientController:
[HttpGet]
public ActionResult ReglasDispositivos()
{
ClienteReglasDispositivos model = new ClienteReglasDispositivos();
return View(model);
}
ReglasDispositivos视图(添加设备角色)(不确定该BeginForm):
@model SistemaGestion.Models.ClienteReglasDispositivos
...
<div class="view-tables">
<div id="myAdd" class="div-table">
@using (Html.BeginForm("AgregarDispositivo", "Client", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
<fieldset class="fieldset-box">
<div class="editor-field">
@Html.TextBoxFor(model => model.NombreDispositivo, new { Class = "YourBackgroundClass", Placeholder = "Nombre del dispositivo" });
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.HorasDeUso, new { Class = "YourBackgroundClass", Placeholder = "KwPorHora" });
</div>
<div class="editor-field">
@Html.CheckBoxFor(model => model.EsInteligente, new { Class = "YourBackgroundClass" });
</div>
<input type="submit" class="submit-login" value="AGREGAR" />
</fieldset>
}
</div>
ClienteReglasDispositivos
public class ClienteReglasDispositivos
{
[Required]
public string NombreDispositivo { get; set; }
[Display(Name = "Es inteligente?")]
public bool EsInteligente { get; set; }
public double KwPorHora { get; set; }
public float HorasDeUso { get; set; }
public string Condicion { get; set; }
}
答案 0 :(得分:0)
由于多态性,您可以具有名称相同的多个动作。 ASP决定您通过[Http(XX)]
调用什么操作。
你可以拥有
[HttpGet]
public ActionResult ReglasDispositivos()
{
ClienteReglasDispositivos model = new ClienteReglasDispositivos();
return View(model);
}
[HttpPost]
public ActionResult ReglasDispositivos([FromForm] ClienteReglasDispositivos model)
{
if(ModelState.IsValid(model)) {
//do something
}
return View(model);
}
您还可以调用不同的操作名称并返回相同的视图
[HttpGet]
public ActionResult ReglasDispositivos()
{
ClienteReglasDispositivos model = new ClienteReglasDispositivos();
return View(model);
}
[HttpPost]
public ActionResult ReglasDispositivosPost([FromForm] ClienteReglasDispositivos model)
{
return View("ReglasDispositivos", model);
}