Im新的ASP.net MVC和我使用DevExpress-MVC扩展来构建一个小型应用程序,一个雇员的时间注册,使用DataGrid。如何将输入数据从视图传递到控制器
我的问题是以下之一:
用户能够输入他的名字缩写,提交该控制器应该调用查询到我的数据库,并显示他的回应员工-ID。
我得到我的DataViewModel传递我的模型到视图,现在我想它绑定到文本框,并从ViewModel检索数据将做到这一点,但它没有。
我的代码看起来像这样:
视图模型
public class MyErfassungViewModel
{
public MyErfassung erfassung;
public String personalnummer;
public String personalkuerzel;
public List<String> dim1;
public List<String> dim2;
public List<String> dim3;
public List<String> dim4;
public List<String> dim5;
public MyErfassungViewModel(MyErfassung myerfassung)
{
this.erfassung = myerfassung;
}
}
查看
@model DevExpressMvcApplication.Models.ViewModel.MyErfassungViewModel
<div class ="Personalnummer">
@using (Html.BeginForm("getNummer","MyErfassung"))
{
<label>Personalkürzel</label>
@Html.DevExpress().TextBox(settings =>
{
settings.Name = "TextBoxPersonalkürzel";
}).Bind(Model.personalkuerzel).GetHtml()
<label>Personalnummer</label>
@Html.DevExpress().TextBox(settings =>
{
settings.Name = "TextBoxPersonalnummer";
settings.ReadOnly = true;
}).Bind(Model.personalnummer).GetHtml()
@Html.DevExpress().Button(settings =>
{
settings.Name = "TextBoxKuerzel";
settings.Text = "Holen";
settings.UseSubmitBehavior = true;
}).GetHtml()
<br>
}
</div>
控制器
//
// GET: /MyErfassung/
public ActionResult Index()
{
viewModel.personalkuerzel = "sese";
return View(viewModel);
}
[HttpPost]
public ActionResult getNummer()
{
String kurz = Convert.ToString(Request["TextBoxKuerzel"]);
String nr = Convert.ToString(Request["TextBoxPersonalnummer"]);
String nummer = dbRepo.getPersonalnummerByKuerzel(viewModel.personalkuerzel);
viewModel.personalnummer = nummer;
return View(viewModel);
}
就像你能看到我尝试了一些可能的方式来接收用户输入并发送一个DB-Request来获得一个数字。 但是请求或视图模型都包含多于一个空引用。
但简单地说我无法将用户输入从我的表单传递回控制器。
听起来很棒,但如果我尝试这个,我会得到“没有为此对象定义的无参数构造函数”。我试图理解脚手架模板如何实现这一点,但从视图到控制器的连接对我来说仍然是某种魔术。我认为我在视图的第3行缺少一些内容:“@using(Html.BeginForm(”getNummer“,”MyErfassung“))” – PreDer 2013-04-29 11:31:32
你能发布整个堆栈跟踪吗? – 2013-04-29 11:33:12
http://pastie.org/private/d6ibepzfdczmgugmppr1q – PreDer 2013-04-29 11:38:15