MVC 从View像Controller中传值

       在上一篇博客中总结了一下从Controller像View中传值的几种方法,其实看那些方法和在我们最初学习VB的时候一样,将数据库中的数据显示到前台的页面,数据库还是那个数据库,只是现在前台变成了浏览器,传值的形式发生了变化。从View像Controller中传值有很多种方法,只简单的说明一下自己使用过的。

使用Form

      使用Form提交的方法有很多种,先结合上次博客中使用Model从Controller向View中传值

一般形式的form

在View中

@*自己定义的具体要使用的viewModel*@
@modelTalentServiceCenterFileManage.ViewModel.FileWagesViewModel
 
//将表单使用post的方法提交,调用的是action中缩写的路径方法,这和之前学过的没有差别
<form method="post"action="/FileWages/AddFileWagesInfo"> 
   <tablewidth="84%" border="0" cellpadding="0"cellspacing="0">
      <tr>
         <td>@Html.TextBoxFor(a => a.kindOfSalaryOld)</td>       
//这里的a就是上面自己定义的model的类型,这样在textBox中显示的就是对于的kindOfSalaryOld这个属性的值,而这个值是从Controller中传来的
         <td>@Html.TextBoxFor(a => a.kindOfSalary)</td>
      </tr>
<input type="submit"value="保存" /> //注意这里的控件,当单击时触发post提交方式
   </table>
 

        其中form的action中写的是要接受数据的Controller和要使用的其中的方法,当单机submit按钮时,整个表单以post的方式提交。

在Controller中

[HttpPost]//如果有post请求就执行这里的代码
 
//其中的参数就是从View中传回来的,它的属性值就是用户在文本框中填写的内容
public ActionResultAddFileWagesInfo(FileWagesViewModel addFileWagesEntity)
{
         //写具体的使用方法,就可以直接和后台交互
}

使用BeginForm

在view中

<span style="font-size:14px;"> <div id="import"  padding-top: 10px">
        @using (Html.BeginForm("Import", FormMethod.Post, new { id = "fmImport", enctype = "multipart/form-data" }))
        {
             
            <input type="text" id="txtModify">
        }
 </div></span>

         其中的“Import”是要调用的方法,“FileWages”是要调用的Controller的名字,FormMethod.Post是form提交的方式,new{}里定义的是HTML的特性设置,可以F12定位有相应的方法解释。

         如果要触发表单的提交,可以再js中控制,调用Import方法。

       function Import() {                                                                                                      window.location.href = '@Url.Action("AddFileWagesInfo", "FileWages")?<span style="font-size: 14px; font-family: Arial, Helvetica, sans-serif;">txtModify</span>='+document.getElementById('#txtModify').value;                              }
         以上将在text中输入的内容以URL的方式传到Controller中。


使用Ajax

在View中

<span style="font-size:14px;">function UpdateNews()
       {
           var date = $('#test').datagrid("getChecked");//结合EasyUI,目的是获得选中项
           var strKey = [];
           $.each(date, function (index, item) {
                strKey.push(item.basicInformationNumber//将选中项的basicInformationNumber属性的值添加到定义的数组中
           })
                                     console.log(strKey.join(","));//分割数组中的内容
                         //将他们作为值提交
                var Showurl = '/FileWages/ShowInfo?showId='+ strKey;
                            //使用ajax进行提交
                $.ajax({
                    type: "POST",
                    dataType: 'json',
                    url: Showurl,//传递URL的地址
                    success: function (msg) {
                        if (msg.success) {
                            alert("删除成功");
                        }
                        else {
                            alert('删除失败,请联系管理员!',msg.errorMsg);
                        }
                    }
                });
           }
       }</span>

在Controller中

<span style="font-size:14px;">public ActionResult DelFileWagesInfo()
{
         stringstrSrchKey = Request.QueryString["DelID"].ToString();//这是我们之前很熟悉的方法
}</span>

小结

         其实自己总结的内容网上都能查到,但是那都是别人的东西,不能因为别人写了自己就不写了,那知识永远都不会是你自己的。今天开师徒会说道这样一种情况:遇到一个问题,自己记得很清楚原来解决过,然后就开始找自己原来的笔记、博客,很无奈的是发现自己没有做记录,然后由开始从网上找资料,这样效率比较低,而且因为没有总结所以自己脑子里是没有深刻印象的,当重新遇到的时候只能在查。

        所以总结一定要时时的做,不要小瞧当初解决那个问题的办法有多简单,让它变成自己的!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 22
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值