gpt4 book ai didi

c# - 从 MVC 中的模型数据中选定的下拉列表项动态更改 View

转载 作者:行者123 更新时间:2023-11-28 16:15:19 25 4
gpt4 key购买 nike

我不确定我是否正确地解决了这个问题,所以如果解释似乎缺乏,请耐心等待。我对 MVC-3 还有些陌生。

我有一个 MVC 页面,我不确定从模型生成具有正确行为的 View 的最佳方法是什么。该模型包含文本字段类的列表,每个文本字段类包含一组要在 View 中显示的文本字段(例如“HeadlineText”、“ButtonText”、“ColorText”等)。文本字段类的列表用于用户设置的每种独特语言,以便他们可以为每种不同语言创建一组文本字段。

在 View 中,有一个下拉列表,其中包含文本字段类列表中的每种语言/对象,我想根据在下拉列表中选择的语言选项来更改 View 中显示的文本字段-down-list(并相应地动态更改)。

我最初的计划是从模型中为列表中的所有对象生成 View 中的 html,然后使用 javascript 隐藏/取消隐藏不属于下拉列表中所选语言的文本字段集-列表。我真的不喜欢在页面上生成一堆额外的 html 的想法,这样就可以通过 javascript 进行更改,但我没有看到任何其他方法可以在不重新加载/重新生成 View 的情况下更新 View (我'我试图让它看起来异步,没有回发)。

更新:

关于部分 View 的建议似乎是我想要的,但我仍然想知道其他评论者没有输入的内容。也就是说,如果我想做部分 View ,我仍然需要将文本字段绑定(bind)到父模型中的数据,并且(也许使用编辑器模板)仍然能够修改它们并在父 View /模型/表单已提交保存。

我在 bit.ly/N5DY5a 和 bit.ly/SVYqdT 上阅读了一些其他内容。如果我正确理解它们,我应该能够将文本字段列表对象或父模型传递到部分 View ,以便该 View 将为正确的字段生成编辑器模板,并仍然将它们绑定(bind)到父模型,以便当提交父表单时它们会被保存吗?我还没有做任何事情,但我仍在努力......

最佳答案

解决方案

第一次使用 View 渲染页面。

然后当你选择的值改变时,使用ajax来获取新的内容。

现在使用分部 View 来呈现页面中被修改的部分。

您的部分 View 包含与您的 View 相同的标记,但只是修改了部分。

示例

在 Controller 中:

//get data

if (!Request.IsAjaxRequest())
{
return View(data);
}
else
{
return PartialView("myPartialView", data);
}

在 View 中:

HTML:

...    
<div id="partialView"></div>
...

jQuery:

<script type="text/javascript">
$(function () {
$('#myDropdownlist').change(function () {
$.get('/controller/action' + $(this).find(':selected').val(), function (data) {
$('#partialView').html(data);
}
});
});
</script>

关于c# - 从 MVC 中的模型数据中选定的下拉列表项动态更改 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11659756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com