私はTexboxを持っています。データベースからオートコンプリートjQueryスクリプトを使ってkeywords
を複数取得しています。 Textbox
が@Html.TextBox("search")
のようなもので、コントローラにデータを送信するにはどうしたらいいですか?また、すべてが異なるIDを持つ複数の値を持っています。MVC Texboxの複数のキーワードをデータベースに保存
複数の値を保存するにはどうすればよいですか?私はlist
またはarray
を持つことができますか?または、私は投稿テーブルを変更し、そこにタグを追加しますか?それとも、私はタグを使って投稿を保存するための3番目のモデルを作っていますか?
今私は混乱しています。どのようにしてTextbox
から値を抽出してコントローラに送信し、それをdbに保存しますか?
この問題を解決する方法を教えてください。
EDIT:
仕事の間やタグでの私の関係は、このようなものです:
仕事モデル:
[ForeignKey("Tags")]
public int TagId { get; set; }
public virtual Tags Tags { get; set; }
タグモデル:
[ForeignKey("Jobs")]
public int JobID { get; set; }
public virtual ICollection<Job> Jobs { get; set; }
script
TagID
と一緒にJobTable
に値を入れて保存する必要がありますが、同じTagID
の複数の値を保存する方法が混乱しています。JobID
。私はかなり確信していますoverthinkingこれです。今のところ私はこれを行うことを試みているstring[] keywords = Request.Form["search"].Split(',');
以下のように提案します。今、私は@Yanga回答をしようとしていますについて
var jobs = new Job
{
//Non-Visible for users
ID = job.ID,
DateAdded = DateTime.Now,
DateExp = expireDate,
//UI Submit Data
DescJob = job.DescJob,
Name = job.Name,
//Relational Tables
XP = xp.Exp.ToString(),
UserID = LoggedUserId,
//Here the magic
//Just an example how I think
TagID = // Here values from my @Html.TextBox("search")
// If there are 2 3 4 values in textbox its very logical to do it with a foreach
// and get every ID and then store them. I still don't understand how my database
// will look like
};
:
これは私が仕事を作成する方法です。私がしたいことに非常に近いと思われます。
あなたの不動産ニーズをあなたが返すデータのタイプに応じて 'int [] search'(または' string [] search')になるようにします。 –
あなたは複数の値を1つに格納することができると思います区切り文字付きのテキストボックス(コンマ(、)など)→コントローラに渡します。コントローラー内で を使用すると、新しいカスタムModelBindingを作成し、モデルとバインドする方がよいでしょう。 ModelBinding自体は値を分割してリストとして返すだけです。 そのようなもの –
RizkiDPrast