Jquery MVC选择表中的项目发送到控制器方法id和所选项目
我一直在编写一些代码,这样当在下拉列表中选择一个项目时,它会被发送到控制器上的一个方法。我喜欢:Jquery MVC选择表中的项目发送到控制器方法id和所选项目,jquery,asp.net-mvc,Jquery,Asp.net Mvc,我一直在编写一些代码,这样当在下拉列表中选择一个项目时,它会被发送到控制器上的一个方法。我喜欢: @foreach (var invoiceLine in Model.InvoiceLines) { <tr><td> <span>Administrator:</span> @Html.DropDownLis
@foreach (var invoiceLine in Model.InvoiceLines) {
<tr><td>
<span>Administrator:</span>
@Html.DropDownList("dropDownList", new[]
{
new SelectListItem { Text="", Value="0" },
new SelectListItem { Text = "First", Value = "1" },
new SelectListItem { Text = "Second", Value = "2" }
})
无论如何,除了发送所选项目索引外,我还想发送每个发票行的id,即invoiceLine.id
有人能告诉我怎么做吗
此外,我意识到我当前的代码中存在一个问题,即jQuery只能找到名为dropDownList的第一个下拉列表,即使有很多
有什么办法吗
我这样做对吗
是否有更好的方法?如果您正在使用这些值进行任何操作,发送回这些值会立即使您遭受额外的安全攻击
在大多数情况下,您只想返回他们选择的值,甚至需要根据最初发送给他们的内容验证该值是否合法。我建议您将数据属性添加到
@Html.DropDownList("dropDownList", new[]
{
new SelectListItem { Text="", Value="0" },
new SelectListItem { Text = "First", Value = "1" },
new SelectListItem { Text = "Second", Value = "2" }
}, new{data-id=@invoiceLine.id })
稍后,您将能够在JQuery函数中获得该值,如下所示
$("select here your dropdown list").attr("data-id")
顺便说一句,如果您想标记许多元素,如您的用例类中的元素,则ID用于标识唯一的元素。这是一个安全问题吗?来自浏览器的任何数据都是可疑的,因为它很容易替换。当您接受来自用户的数据时,首先要问的是。。有人能用这些数据做些什么来伤害我?假设您正在使用某种东西来保护自己免受SQL注入攻击,那么答案有时可能是零。。但即便如此,最好还是尽量少地从用户那里获取所需的信息。
$("select here your dropdown list").attr("data-id")