gpt4 book ai didi

c# - 如何直接从 Jquery 访问 .net MVC ViewData

转载 作者:太空狗 更新时间:2023-10-30 00:47:02 28 4
gpt4 key购买 nike

我像这样将 View 数据传递到我的 aspx 页面中:

//Controller
List<user> userList = Data.GetAllUsersForCompany(companyId);
List<SelectListItem> dropDownList = FormatUserList(userList);
ViewData["UserList"] = userList;
ViewData["FormattedUserList"] = dropDownList;
return View();

我正在用用户名填充下拉列表,我想将其与 Jquery 绑定(bind),这样当用户更改下拉列表时,这又会用当前选定的用户更新输入字段。

ASPX 页面:

<p>
<%= Html.DropDownList("userSelected", (List<SelectListItem>)ViewData["FormattedUserList"] )%><br /><br />

<%= Html.TextBox("userFName")%><br />
<%= Html.TextBox("userLName")%><br />
<%= Html.TextBox("userEmail")%>
</p>

我连接了 Jquery 来检测有效的下拉变化,但我如何用数据操作输入框?

<script type="text/javascript">
$(document).ready(function() {
$("#userSelected").change(function() {
var pkUser = $("#userSelected").val();
alert("Current UserID is " + pkUser); //works up to here just fine
$("#userFName).val() = ViewData["UserList"].Select(x => x.pkUser == valueOfDropDown).fName; ???
.
.
.
});
});
</script>

我做的事情完全错了吗?你能指出这种情况下的最佳做法是什么吗?如果我可以避免回发,那将是最理想的。

灵魂(MVC 新手)

最佳答案

看起来您正在混合使用 javascript 和 c#,请记住 javascript 仅执行客户端,而 c# 仅执行服务器端。话虽这么说,如果你想让你的 javascript 在客户端使用你的一些 View 数据,你需要在 javascript 可以访问它的页面中对其进行编码。我能想到的最简单的方法是使用 JavaScriptSerializer 并将值嵌入到您的 javascript 中,有点像:

<%
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
%>

<script type="text/javascript">
var users = <%= serializer.Serialize(ViewData["UserList"]) %>;

//Use the users variable now with a copy of the view data.
</script>

关于c# - 如何直接从 Jquery 访问 .net MVC ViewData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1594958/

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