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