0

我很难将 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)

在我单击第一页上的继续后,它会使用我的两个选项加载视图,并在它显示之前点击选择块。有什么解决办法吗?

4

2 回答 2

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"; 
}
于 2013-06-19T16:16:21.173 回答
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>
于 2013-06-19T16:18:53.997 回答