显示的数据依赖于另一个数据,从数据库下载asp.net
The displayed data depends on another data, downloaded from the database asp.net
问题描述:
我正在将列 "Login" 从数据库下载到我的选择框。
我还有两个字段:2x 文本框
我尝试在选择框中进行选择,选择后,
他们从数据库中的同一行下载到文本框,但从姓名列下载到文本框
型号代码:
using System;
using System.Collections.Generic;
using AppEcp.Models;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using System.ComponentModel.DataAnnotations;
namespace App.Models
{
public partial class Members_Model
{
public int Id { get; set; }
public string Login { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
}
public partial class MembersDbContext : DbContext
{
public MembersDbContext() { }
public virtual DbSet<Members_Model> Members { get; set; }
public MembersDbContext(DbContextOptions<MembersDbContext> options) : base(options) { }
protected override void OnModelCreating(ModelBuilder modelBuilder) { }
}
}
控制器代码:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using App.Models;
using Newtonsoft.Json;
using DevExtreme.AspNet.Data;
using DevExtreme.AspNet.Mvc;
namespace App.Controllers
{
public class MembersController : Controller
{
private readonly MembersDbContext _membersContext;
public MembersController(MembersDbContext membersContext)
{
_membersContext = membersContext;
}
public IActionResult GetItems(DataSourceLoadOptions loadOptions)
{
var GetMethod = _membersContext.Members.Select(i => new
{
i.Id,
i.Login,
i.Name,
i.Surname
});
return Json(DataSourceLoader.Load(GetMethod, loadOptions));
}
public ActionResult GetNameAndSurname()
{
return;
}
}
}
我试过了:
在此 ajax 中使用 jquery,选择框中的 .OnValueChanged 到控制器
中的 运行 函数
查看
@(Html
.DevExtreme()
.SelectBox()
.ID("id_login")
.DataSource(d => d
.Mvc()
.Controller("Members")
.Key("Id")
.LoadAction("GetItems")
)
.DisplayExpr("Login")
.ValueExpr("Id")
.SearchEnabled(true)
.OnValueChanged("getMyFuntion")
)
@(Html.DevExtreme().TextBox()
.ID("tx01")
.ReadOnly(true)
)
@(Html.DevExtreme().TextBox()
.ID("tx02")
.ReadOnly(true)
)
<script>
function getMyFuntion() {
var Vtx01= "?";
var Vtx02 = "?";
$.ajax({
type: "GET",
url: "@Url.Action("GetNameAndSurname")",
contentType: 'application/json; charset=utf-8',
dataType: "?",
success: function (res) {
document.getElementById("tx01").value = "?";
document.getElementById("tx02").value = "?";
},
failure: function (response, error) {
alert(error);
},
error: function (req, status, error) {
alert(error);
}
});
}
</script>
我不知道如何解决这个问题,我无法编写将值从数据库加载到文本框的代码(取决于选择框上的所选项目)
将参数传递给控制器函数 GetNameAndSurname(string login)
然后是这样的:
控制器
[WebGet(UriTemplate = "/GetNameAndSurname/{login}")]
public ActionResult GetNameAndSurname(string login){
urDB.Where(x=>x.login == login).Select(s=> new Members_Model {
Name = s.Name,
Surname = s.Surname
});
.. and some stuff u want too... than return...
}
然后 ajax 将看起来像:
$.ajax({
type: "GET",
url: "@Url.Action("GetNameAndSurname")",
data: {"Login" : valueOfLoginFromUrWebPage}
......
});
问题描述:
我正在将列 "Login" 从数据库下载到我的选择框。
我还有两个字段:2x 文本框 我尝试在选择框中进行选择,选择后,
他们从数据库中的同一行下载到文本框,但从姓名列下载到文本框
型号代码:
using System;
using System.Collections.Generic;
using AppEcp.Models;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using System.ComponentModel.DataAnnotations;
namespace App.Models
{
public partial class Members_Model
{
public int Id { get; set; }
public string Login { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
}
public partial class MembersDbContext : DbContext
{
public MembersDbContext() { }
public virtual DbSet<Members_Model> Members { get; set; }
public MembersDbContext(DbContextOptions<MembersDbContext> options) : base(options) { }
protected override void OnModelCreating(ModelBuilder modelBuilder) { }
}
}
控制器代码:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using App.Models;
using Newtonsoft.Json;
using DevExtreme.AspNet.Data;
using DevExtreme.AspNet.Mvc;
namespace App.Controllers
{
public class MembersController : Controller
{
private readonly MembersDbContext _membersContext;
public MembersController(MembersDbContext membersContext)
{
_membersContext = membersContext;
}
public IActionResult GetItems(DataSourceLoadOptions loadOptions)
{
var GetMethod = _membersContext.Members.Select(i => new
{
i.Id,
i.Login,
i.Name,
i.Surname
});
return Json(DataSourceLoader.Load(GetMethod, loadOptions));
}
public ActionResult GetNameAndSurname()
{
return;
}
}
}
我试过了: 在此 ajax 中使用 jquery,选择框中的 .OnValueChanged 到控制器
中的 运行 函数查看
@(Html
.DevExtreme()
.SelectBox()
.ID("id_login")
.DataSource(d => d
.Mvc()
.Controller("Members")
.Key("Id")
.LoadAction("GetItems")
)
.DisplayExpr("Login")
.ValueExpr("Id")
.SearchEnabled(true)
.OnValueChanged("getMyFuntion")
)
@(Html.DevExtreme().TextBox()
.ID("tx01")
.ReadOnly(true)
)
@(Html.DevExtreme().TextBox()
.ID("tx02")
.ReadOnly(true)
)
<script>
function getMyFuntion() {
var Vtx01= "?";
var Vtx02 = "?";
$.ajax({
type: "GET",
url: "@Url.Action("GetNameAndSurname")",
contentType: 'application/json; charset=utf-8',
dataType: "?",
success: function (res) {
document.getElementById("tx01").value = "?";
document.getElementById("tx02").value = "?";
},
failure: function (response, error) {
alert(error);
},
error: function (req, status, error) {
alert(error);
}
});
}
</script>
我不知道如何解决这个问题,我无法编写将值从数据库加载到文本框的代码(取决于选择框上的所选项目)
将参数传递给控制器函数 GetNameAndSurname(string login) 然后是这样的: 控制器
[WebGet(UriTemplate = "/GetNameAndSurname/{login}")]
public ActionResult GetNameAndSurname(string login){
urDB.Where(x=>x.login == login).Select(s=> new Members_Model {
Name = s.Name,
Surname = s.Surname
});
.. and some stuff u want too... than return...
}
然后 ajax 将看起来像:
$.ajax({
type: "GET",
url: "@Url.Action("GetNameAndSurname")",
data: {"Login" : valueOfLoginFromUrWebPage}
......
});