C# と SQL Server 2005 を使用して ASP .Net MVC 3 アプリケーションを開発しています。
ビューには、2 つの DropDownList と TextArea と 2 つのボタンがあります。
- DropDownList 投稿
- DropDownList 関数
- ボタンアジョター
- ボタン登録者
- テキストエリア
「Ajouter」ボタンをクリックすると、TextArea の値が DropDownList の「Fonction」から追加されます。
これらの値をローカル変数で取得したいと考えています。そして、ユーザーがボタン「登録者」(提出)をクリックしたとき。
これはビューのコードです:
<% using (Html.BeginForm("Store", "Fonction")) { %>
<h2>Gérer les droits</h2>
<form id="form1" runat="server">
<fieldset><legend>Gestion</legend>
<div>
<%:Html.Label("Poste :")%><%: Html.DropDownListFor(model => model.SelectedPoste, Model.PostesItems)%>
</div>
<br />
<div>
<%:Html.Label("Fonction :")%><%: Html.DropDownListFor(model => model.SelectedFonction, Model.FoncItems, new { @id = "ff" })%>
</div>
<br />
<div><input type="button" value="Ajouter" id="aj" onclick="addtext()"/></div>
<br />
<div>
<textarea id="tt" cols="10" name="S1" rows="8" readonly="true"></textarea>
</div>
</fieldset>
<br />
<div><input type="submit" value="Enregistrer" id="sv" /></div>
</form>
<script language="javascript" type="text/javascript">
var storedValues = [];
function addtext() {
var ff = document.getElementById('ff');
var tt = document.getElementById('tt');
var selectedValue = ff.options[ff.selectedIndex].value + " ";
if (storedValues.indexOf(selectedValue) === -1) {
storedValues.push(selectedValue)
tt.value = storedValues.join('')
}
}
</script>
そして、これはコントローラーのメソッドストア(送信用)のコードです:
[HttpPost]
public ActionResult Store(FlowViewModel model)
{
if (ModelState.IsValid)
{
Fonction_Poste FP = new Fonction_Poste();
FP.ID_Poste = model.SelectedPoste;
FP.ID_Fonction = model.SelectedFonction;
FP.Droit = 1;
System.Web.UI.HtmlControls.HtmlTextArea htaDemo = (System.Web.UI.HtmlControls.HtmlTextArea)(form1.FindControl("tt"));
String Value = htaDemo.Value;
db.Fonction_Postes.Add(FP);
db.SaveChanges();
}
return RedirectToAction("Index");
}
ご覧のとおり、このステートメントを使用して値を取得しようとしましたが、結果は得られませんでした。
System.Web.UI.HtmlControls.HtmlTextArea htaDemo = (System.Web.UI.HtmlControls.HtmlTextArea)(form1.FindControl("tt"));
String Value = htaDemo.Value;