[英]How do I pass information from my View to my Controller as a Parameter
我有一個表單和兩個SQL數據庫。 表單是向數據庫1提交信息,但是當用戶在第一個字段中輸入信息時,我需要它掃描數據庫2中的該數據並從中填充說明。
我目前有一個按鈕,它將在控制器中運行腳本以檢索此數據。 但是,我不知道如何將第一個字段作為參數傳遞給按鈕onclick,因此它將使用它來搜索數據庫。
一切都在控制器中正常工作,但我不知道如何獲取在EditorFor文本字段中鍵入的信息,並將其作為參數提交給按鈕。 我曾嘗試使用“模型”來執行此操作,但是我對它的工作原理了解有限。
我的觀點:
<div class="form-group">
@Html.LabelFor(model => model.Number, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-4">
@Html.EditorFor(model => model.Number, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Number, "", new { @class = "text-danger" })
</div>
<div class="col-md-1">
<input type="button" value="Search" class="btn btn-default" onclick="location.href='@Url.Action("Search", "Catalog", new { Number = Model.Number })'" ; />
</div>
</div>
我的控制器:
public ActionResult Search(string catNo = "10004361")
{
IFS_Catalog_Products DatabaseScanner = new IFS_Catalog_Products();
string catDesc = "";
if (ModelState.IsValid)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = @"CONNECTION STRING";
con.Open();
SqlCommand cmd = new SqlCommand("SELECT DESCRIPTION FROM TABLE WHERE NUMBER = '" + catNo + "'", con);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
catDesc = dr.GetString(0);
//break;
}
con.Close();
}
DatabaseScanner.IFS_Catalog_Desc = catDesc;
DatabaseScanner.IFS_Catalog_No = catNo;
return View("Create", DatabaseScanner);
}
代碼可以正確編譯,並且除了Model.Number之外,代碼的所有其他方面都可以正常工作,只有將Null傳遞給腳本。
我想從EditorFor字段中的model.Number中獲取信息,並在語句中使用它。
您需要使用@Html.ActionLink
幫助器而不是button來實現目標,如下所示:
@Html.ActionLink("Search", "Search", "Catalog", new { catNo = Model.Number }, new { @class="btn btn-default" })
我將使用POST操作,如下所示:
您的看法:
@model YOUR_MODEL @using (Html.BeginForm("Search", "Home", FormMethod.Post)) { <div class="form-group"> @Html.LabelFor(model => model.Number, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-4"> @Html.EditorFor(model => model.Number, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.Number, "", new { @class = "text-danger" }) </div> <div class="col-md-1"> <input type="button" value="Search" class="btn btn-default"/> </div>
}
您的模型:
public class YOUR_MODEL { public string Number {get;set;} }
您的控制器
[HttpPost] public ActionResult Search(YOUR_MODEL model) { IFS_Catalog_Products DatabaseScanner = new IFS_Catalog_Products(); string catDesc = ""; if (ModelState.IsValid) { SqlConnection con = new SqlConnection(); con.ConnectionString = @"CONNECTION STRING"; con.Open(); SqlCommand cmd = new SqlCommand("SELECT DESCRIPTION FROM TABLE WHERE NUMBER = '" + model.Number+ "'", con); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { catDesc = dr.GetString(0); //break; } con.Close(); } DatabaseScanner.IFS_Catalog_Desc = catDesc; DatabaseScanner.IFS_Catalog_No = catNo; return View("Create", DatabaseScanner); }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.