我很难将View上的Select值传递给控制器。 我的视图中有两个项目,我希望返回模型,我可以在控制器中调用。这是我到目前为止所拥有的。
<label for="phone" class="ui-hidden-accessible">Phone Number:</label>
@Html.TextBoxFor(m => m.PhoneNumber, new { @class = "field-margin", id="phone", type="tel", placeholder="Phone Number"})
<p></p>
<div><p>Save phone for future purchases?</p>
<select name="SavePhone"id ="SavePhone" class="SavePhone" data-role="select">
<option value="false" @(Model.SavePhone == false ? "selected" : "")>No</option>
<option value="true" @(Model.SavePhone == true ? "selected" : "")>Yes</option>
</select><
我不确定如何为选择选项调用第二部分。但是我接受电话号码的代码的顶部部分有效。我在模型,控制器和视图中的命名都是一样的,所以我不知道下一步该做什么。如果您有任何建议,我们将不胜感激。
谢谢!
修改
我想出了我的一部分问题,因为我正在加载它
@Html.Partial("MobilePhoneView", Model)
在第一页上单击“继续”后,它会使用我的两个选项加载视图,并在显示之前点击选择块。对此有什么解决方法吗?
答案 0 :(得分:1)
您可以使用AJAX执行此操作。如果您有以下HTML
<select name="SavePhone"id ="SavePhone" class="SavePhone" data-role="select">
<option value="false">No</option>
<option value="true">Yes</option>
</select>
然后,您只需使用以下命令将您的选择发送给控制器:
<script language="javascript" type="text/javascript">
$(document).ready(function () {
$("form").submit(function () {
$.ajax({
url: '@Url.Action("MethodName","ControllerName")',
type: 'POST',
cache: false,
data: { Selected: $("#SavePhone").val() },
success: function (data) {
//
}
});
});
)};
</script>
您将在控制器中获得此值
private string MethodName (string Selected)
{
String value = Selected;
return "OK";
}
答案 1 :(得分:0)
您的代码唯一可能的问题可能是selected
属性。并非所有浏览器都只了解selected
(我相信这是HTML5设置此类属性的方式),尽管所有人都应该理解selected="selected"
。所以你可以尝试的是:
<select name="SavePhone"id ="SavePhone" class="SavePhone" data-role="select">
<option value="false" @(Model.SavePhone == false ? "selected=\"selected\"" : "")>No</option>
<option value="true" @(Model.SavePhone == true ? "selected=\"selected\"" : "")>Yes</option>
</select>