通过JavaScript从视图MVC发布多个参数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了通过JavaScript从视图MVC发布多个参数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1836字,纯文字阅读大概需要3分钟。
内容图文
我想将在文本框字段中进行的任何更改立即保存到我的数据库,我使用javascript将更改后的值传递回控制器,但是我不知道如何与此一起传递唯一ID以保存更改后的值.
下面是我将价格传递回脚本的视图,我该如何传递零件ID?
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.partid, new { id = "partCode"})
</td>
<td>
@Html.DisplayFor(modelIem => item.partdesc)
</td>
<td>
@Html.TextBoxFor(modelItem => item.price, new { id = "priceTextBox", @class = "mytext rightJustified" })
</td>
</tr>
}
</table>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(function () {
$('#priceTextBox').change(function () {
var changedText = $(this).val();
var partsJava = $("#partCode").val();
//Post the content of your Textbox to your "YourAction" action in "YourController"
$.post('@Url.Action("EnterNewSpecialPrice2", "SpecialPrices")', { "ChangedText": changedText, "PassPartCode": partsJava }, function (data) { });
});
});
</script>
解决方法:
定义一个类,以容纳与您在脚本中创建的Json对象匹配的两条信息:
public class PartInputModel{
public string ChangedText {get;set;}
public string PassPartCode {get;set;}
}
请注意,上面的属性必须与您在此处定义的属性匹配:
{ ChangedText: changedText, PassPartCode: partsJava }
另请注意,创建JSON结构时,必须删除ChangedText和PassPartCode定义周围的双引号,因为这不是必需的.
更改您的控制器动作以接收该对象,并让模型绑定完成工作:
[HttpPost]
public ActionResult EnterNewSpecialPrice2(PartInputModel inputModel) {
// inputModel will have your two pieces of data
}
一种更好的存储和检索id的机制是通过添加data-id标签将其作为数据标签附加到文本框的标记中:
@Html.TextBoxFor(m => item.price, new { id = "", @class = "priceTextBox mytext rightJustified", data_id="item.partid" })
然后更改您的脚本以阅读以下内容:
var partsJava = $(this).data('id');
这种方法的优点是,只需扩展JSON结构并将匹配属性添加到PartInputModel类中,就很容易传递其他参数.
内容总结
以上是互联网集市为您收集整理的通过JavaScript从视图MVC发布多个参数全部内容,希望文章能够帮你解决通过JavaScript从视图MVC发布多个参数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。