繁体   English   中英

如何对ASP.NET Core 2.0剃须刀页面中按下的按钮做出反应

[英]how to react to button pushed in ASP.NET Core 2.0 razor pages

我正在第一个asp.net core v.2项目中,正在寻找如何响应这两个用户操作:

   a) selection in a dropdown box.  
   c) a button click.   

它可能应该在服务器端,而不是在javascript中,因为它们将通过RESTfull Web API进行工作并控制微波炉。 (计时器和开始/停止)。

1:广告a)我在下拉菜单中填充了3个条目,但无法在下拉菜单中选择要选择的时间。 我怎么做?

2:广告a)当用户选择其他时间时,我希望能够呼叫我的微波炉并设置新选择的时间。 -基本上,我想转到页面控制器,并从那里设置时间。

3:ad b)如何获得C#代码,在此我可以根据按下哪个按钮来启动或停止微波炉? -是在控制器中还是在page.cshtml页面的cs文件中?

谢谢你的遮阳篷...

在表单内单击提交按钮可以将数据从浏览器发送到服务器动作方法,而无需使用javascript。 但是,如果没有javascript,下拉菜单就无法单独完成change事件(无需提交明确的表单)。

1:我在下拉菜单中填充了3个条目,但是无法在下拉菜单中选择要选择的时间。 我该怎么做?

如果将SELECT标记帮助器与视图模型一起使用,则应该可以选择它。

public class MyViewModel
{
  public string SelectedVal { set;get;}
  public List<SelectListItem> Items {set;get;}
}

并在您的GET操作中

public ActionResult Create()
{
  var vm=new MyViewModel();
  vm.Items = new List<SelectListItem>{
     new SelectListItem { Value="1", Text="1" },
     new SelectListItem { Value="2", Text="2" },
     new SelectListItem { Value="3" , Text="3"}
  };

  vm.SelectedVal = "2";  // This will pre select the second item in dropdown

  return View(vm);
}

并认为

@model MyViewModel
<form asp-action="Create" method="post">
  <select asp-for="SelectedVal" asp-items="@Model.Items" >
        <option>Please select one</option>
    </select>
  <input type="submit" />
</form>

在HttpPost Create操作方法中,您将获得SelectedVal

[HttpPost]
public ActionResult Create(MyViewModel model)
{
   //check model.SelectedVal
   // to do : return something
}

2:广告a)当用户选择其他时间时,我希望能够呼叫我的微波炉并设置新选择的时间。 -基本上,我想转到页面控制器,并从那里设置时间。

就像我上面提到的,您可以单击“提交”按钮以提交新选择的值。 但是,如果您不想单击提交,则需要使用javascript代码来处理下拉菜单中的change事件,然后通过javascript提交表单。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM