アプリケーションの _layout ビューにドロップダウン リストが含まれています。私がやろうとしているのは、リストにSQLサーバーからのデータを入力し、選択した値に基づいてユーザーを別のビューにリダイレクトすることです。
ユーザーがEnter/Searchをクリックすると、ドロップダウンリストの値が最初の値にデフォルト設定されることを除いて、すべて正常に機能しています。私は現在 Web フォームから移行しているので、非常に難しくイライラしています。
ここに私のモデルのコードがあります
public class DomainNameViewModel
{
private static readonly string ConStr = WebConfigurationManager.ConnectionStrings["App"].ConnectionString.ToString();
public string SelectedDomainId { get; set; }
public IEnumerable<SelectListItem> domains
{
get
{
List<SelectListItem> l = new List<SelectListItem>();
using (SqlConnection con = new SqlConnection(ConStr))
{
SqlCommand com = new SqlCommand("spDomainList", con);
con.Open();
SqlDataReader sdr = com.ExecuteReader();
while (sdr.Read())
{
l.Add(new SelectListItem() { Text = sdr[0].ToString(), Value = sdr[1].ToString() });
}
return l;
}
}
コントローラーのコード。
[ChildActionOnly]
public ActionResult Index()
{
return PartialView(new DomainNameViewModel());
}
ドメイン名ビュー
@model app.Models.DomainNameViewModel
@{
Layout = null;
}
@Html.DropDownListFor(x => x.SelectedDomainId, Model.domains, new { @id = "e1",@class = "bannerlist" })
そして _Layout ビューのコード
@using (Html.BeginForm("Search","DomainSearch",FormMethod.Get))
{
@Html.TextBox("txtDomain", null, new { @class = "bannertextbox" , placeholder="Search for a Perfect Domain!" })
@Html.Action("index","DomainName")
<input type="submit" class="bannerbutton" value="Search" />
}
どんな助けでも大歓迎です。
編集: DomainSearchController コードを追加しました。
public class DomainSearchController : Controller
{
//
// GET: /DomainSearch/
public ActionResult Search(string txtDomain,string SelectedDomainId)
{
DomainNameViewModel Domain = new DomainNameViewModel();
Domain.SelectedDomainId = SelectedDomainId;
string check = Domain.ParseDomain(HttpUtility.HtmlEncode(txtDomain), HttpUtility.HtmlEncode(SelectedDomainId));
string s = Domain.CheckDomains(check);
ViewBag.Domain = Domain.DomainCheckResult(s);
return View();
}
}