【问题标题】:Conditionally populate partialview control in MVC3在 MVC3 中有条件地填充部分视图控件
【发布时间】:2012-02-21 10:41:46
【问题描述】:

创建一个部分视图以输入一些个人详细信息。我必须包括 2 个下拉列表,1 个用于国家,1 个用于国家。当我选择国家作为美国时,它希望从 DB 中填充所有州名。如果我们选择我想要的其他国家将状态的下拉列表替换为文本框。我怎样才能使它成为可能?

谢谢。

【问题讨论】:

标签: javascript jquery asp.net-mvc-3 partial-views


【解决方案1】:

我的建议是使用 jquery ajax 请求来根据国家值填充下拉列表选项。 ajax 请求可能指向另一个 PartialView,它将根据参数返回下拉列表或文本框...

如果您在实施过程中遇到任何问题,请告诉我,我很乐意为您提供帮助...


控制器中的操作:

public ActionResult StateNames(string country)
{
    if(country == "US")
    {
        var model = GetArrayOfUsStates();
        return View(model);
    }
    else
    {
        var model = string[0];
        return View(model);
    }
}

您的下拉列表的部分视图:

@model string[]

@if(Model.Length == 0)
{
    <input type="text" name="state" />
}
else
{
    <select name="state">
        @foreach(var state in Model)
        {
            <option value="@state">@state</option>
        }
    </select>
}

您的页面结构:

<select id="countryDDL">
   ...
</select>
<div id="stateDDLHolder">
</div>

你的 jQuery 代码得到下拉:

$.ajax({ 
         url: '/YourController/StateNames/' + $('#countryDDL').val(),
         success: function(data) { $('#stateDDLHolder').html(data); }
});

【讨论】:

  • 我怎样才能用 jquery 做这个?
  • 我已经为你添加了示例......如果其中的某些内容不起作用,请告诉我......我是直接在答案窗口中写的,没有测试它,所以可以是一些拼写错误等。无论如何,希望它会有所帮助..
  • 目前我将所有状态加载到我的下拉列表中。是否可以使用 jquery 将状态下拉列表替换为文本框?
  • 我为此使用了一个文本框和一个下拉列表。通过 jquery,我使用了显示和隐藏选项来解决这个问题。但是如果它是 ddl 或文本框,我必须保持位置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多