使用DevExtreme在ASP.NET中发布时如何获取自动完成文本框值

问题描述

在ASP.NET Core应用程序中发布表单时,我需要获取文本的值。

在我的HTML文件中,我具有以下DevExtreme控件:

<div class="form-group">
     <label asp-for="@Model.Account.FullName" class="control-label"></label>

      @(Html.DevExtreme().Autocomplete()
             .DataSource(d => d.Mvc().Controller("Offer").LoadAction("GetFullNames"))
             .ShowClearButton(true)
             .Placeholder("Type name")
       )
</div>

我通过此行从表单中获取所有其他值:

<div class="form-group">
      <input asp-for="@Model.Account.Email" class="form-control" />
</div>

Devextreme文档没有提供任何有关如何在此字段中提取类型化值的信息。 由于我的前端知识有限,因此我不确定是否可以使用jQuery。

我正在使用此Get方法填充自动完成框,但是我的问题是,当自动完成位于表单内部并且正在提交表单时,如何获取值。

  [HttpGet]
  public object Get(DataSourceLoadOptions loadOptions)
  {
      return DataSourceLoader.Load(_context.Account,loadOptions);
  }

解决方法

您要提交表单并将字段值绑定到httpost操作中的Account模型吗?如果是这样,则应将Name属性添加到“自动完成”小部件中。

也许您可以参考以下代码:

型号:

public class TestModel
{
    public Account Account { get; set; }
}

public class Account
{
    public string FullName { get; set; }
}

查看:

@model TestModel

<h2>Home</h2>

<form asp-action="Test">
    <div class="form-group">
        <label asp-for="@Model.Account.FullName" class="control-label"></label>

        @(Html.DevExtreme().Autocomplete()
             .DataSource(d => d.Mvc().Controller("Offer").LoadAction("GetFullNames"))
             .ShowClearButton(true)
             .Placeholder("Type name")
             .Name("FullName")
       )

        <input type="submit" value="submit" class="btn btn-primary" />
    </div>
</form>

OfferController:

public class OfferController : Controller
{
   
    [HttpGet]
    public object GetFullNames(DataSourceLoadOptions loadOptions)
    {
        List<string> names = new List<string>
        {
            "aa","ab","bb","bc","cc","cd"
        };

        return DataSourceLoader.Load(names,loadOptions);
    }
}

HomeController:

[HttpPost]
public IActionResult Test(Account account)
{


    return Ok(account);
}

结果:

enter image description here

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...