热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于ASP.NETMVC中POST上的c#:Null值

NullvalueonPOSTinASP.NETMVC我正在学习ASP.NET


Null value on POST in ASP.NET MVC


我正在学习 ASP.NET MVC,但遇到以下问题。

视图"SelectProdotti"是









@model Models.SelectProdottiModel

@{

    ViewBag.Title ="Select Prodotti";
}

@ViewBag.Title

@using (Html.BeginForm("ProdottiToListino","Listino", FormMethod.Post))
{

    @Html.HiddenFor(m => m.id)

    @Html.DisplayFor(m=> m.id)

    <input type="submit" value="Salva" />
}



加载视图的动作










public ActionResult SelectProdotti(int id)

        {

            SelectProdottiModel model = new SelectProdottiModel();

            model.id = id;        

            return View(model);

        }



型号










using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Models
{

    public class SelectProdottiModel

    {

        public int id;

        public SelectProdottiModel()

        {                

        }

    }
}



控制器中的发布动作










[HttpPost]

        public ActionResult ProdottiToListino(SelectProdottiModel model)

        {

            return RedirectToAction("SelectProdotti","Listino", new {id = model.id });

        }



我写这段代码只是为了学习,没用。问题是model.id始终为0,即视图不发布值,错误在哪里?



相关讨论





  • public int id 是一个字段。默认的模型绑定器甚至不会尝试绑定它。尝试使用属性:public int id { get; set; }






当前 Id 是您的类的一个字段,没有 GETTER/SETTER 属性/方法。

字段通常用于在类内部存储数据(这些将具有默认私有可见性)。通常,字段的值将通过另一个公共属性或方法设置/读取。使用 C# 属性,这更容易,如果你想让一个字段可读可写,你可以创建一个像

这样的公共属性










public int Age {set;get;}


当您从表单发布数据时,DefaultModelBinder(将表单数据映射到类对象的类)将尝试创建 SelectProddottiModel 类的对象并尝试设置匹配的公共属性的值与发布的表单数据中的表单项的名称。如果您不使用 set 访问器将您的字段设置为公共属性,则模型绑定器无法设置该值。

将您的字段 Id 更改为具有 setget 的属性,以便 ModelBinder 可以从发布的表单数据中设置值。










public class SelectProdottiModel
{

    public int id {set;get;}      
}


此外,C# 通常使用 PascalCasing。所以我建议你将 Id 属性更改为 Id



相关讨论




  • 不正确 - C# 属性通常是 Pascal 大小写,而不是 Camel 大小写。 C# 字段通常是 ??Camel 大小写。


  • @NightOwl888 哎呀!我用错了。感谢您的关注。










推荐阅读
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文讲述了如何通过代码在Android中更改Recycler视图项的背景颜色。通过在onBindViewHolder方法中设置条件判断,可以实现根据条件改变背景颜色的效果。同时,还介绍了如何修改底部边框颜色以及提供了RecyclerView Fragment layout.xml和项目布局文件的示例代码。 ... [详细]
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
  • Oracle10g备份导入的方法及注意事项
    本文介绍了使用Oracle10g进行备份导入的方法及相关注意事项,同时还介绍了2019年独角兽企业重金招聘Python工程师的标准。内容包括导出exp命令、删用户、创建数据库、授权等操作,以及导入imp命令的使用。详细介绍了导入时的参数设置,如full、ignore、buffer、commit、feedback等。转载来源于https://my.oschina.net/u/1767754/blog/377593。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
author-avatar
chen
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有