我有一個BeginForm來填充模型的所有屬性。然後我使用屬性值來傳遞操作方法(模型綁定)。將BeginForm之外的值傳遞給它
現在我在BeginForm之外有一個下拉菜單,我想向模型添加一個屬性。屬性值是從下拉列表中選定的值中拾取的。
所以
- 我修改了模型
AddQuestionModel
,增加了一個屬性SelectedLanguage
。 在BeginForm中添加了一個隱藏文本框。
@using (Html.BeginForm("AddSurveyQuestion", "Country", FormMethod.Post, new { enctype = "multipart/form-data", id = "AddQuestionForm" })) { <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h3>Add New Question</h3> </div> <div class="modal-body"> @Html.TextBox("SelectedLanguage",new { value = "English", @class = "hidden" })
聽更改事件。
$("#Model_SelectedLanguage").change(function() { var selectedValue = $(this).find('option:selected').text(); $("#SelectedLanguage").val(selectedValue); location.reload(); });
現在的問題是,我仍然無法在操作方法
[HttpPost]
public ActionResult AddSurveyQuestion(AddQuestionModel model)`.
我的意思是model.SelectedLanguage = null
選擇值。
此外我發現由TextBox呈現的輸入元素根本不隱藏。
首先,您可以使用隱藏字段而不是'@ Html.TextBox':'@ Html.Hidden()'。我會檢查的另一件是你的選擇下拉的價值。確保文字實際上是返回一些東西。 – axlj