在 MVC3 中有条件地填充 PartialView 控件

发布于 2025-01-07 10:03:17 字数 143 浏览 1 评论 0原文

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

谢谢。

Creating a partialview for enter some personal details.I have to include 2 dropdownlist, 1 for country and other for states.When i select country as US then its want to populate all statenames from DB.If we select other country i want to replace dropdown for states to a textbox.How can i make it possible?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

掐死时间 2025-01-14 10:03:17

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

如果您在实现时遇到任何问题,请告诉我,我很乐意帮助您...


控制器中的操作:

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); }
});

My suggestion is to use jquery ajax request to populate the drop down list options depending on country value. The ajax request could point to another PartialView that will return dropdown or textbox depending on parameter...

Let me know if you'll have any troubles with implementation, I'll enjoy helping you...


Action in controller:

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

Partial View for your dropdown list:

@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>
}

Your page structure:

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

Your jQuery code to get drop down:

$.ajax({ 
         url: '/YourController/StateNames/' + $('#countryDDL').val(),
         success: function(data) { $('#stateDDLHolder').html(data); }
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文