热门标签 | 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 哎呀!我用错了。感谢您的关注。










推荐阅读
  • 深入解析SpringMVC核心组件:DispatcherServlet的工作原理
    本文详细探讨了SpringMVC的核心组件——DispatcherServlet的运作机制,旨在帮助有一定Java和Spring基础的开发人员理解HTTP请求是如何被映射到Controller并执行的。文章将解答以下问题:1. HTTP请求如何映射到Controller;2. Controller是如何被执行的。 ... [详细]
  • 在寻找轻量级Ruby Web框架的过程中,您可能会遇到Sinatra和Ramaze。两者都以简洁、轻便著称,但它们之间存在一些关键区别。本文将探讨这些差异,并提供详细的分析,帮助您做出最佳选择。 ... [详细]
  • springMVC JRS303验证 ... [详细]
  • 本文将详细探讨Linux pinctrl子系统的各个关键数据结构,帮助读者深入了解其内部机制。通过分析这些数据结构及其相互关系,我们将进一步理解pinctrl子系统的工作原理和设计思路。 ... [详细]
  • 在Oracle数据库中,使用Dbms_Output.Put_Line进行输出调试时,若单行字符超过255个,则会遇到ORA-20000错误。本文介绍了一种有效的方法来处理这种情况,通过创建自定义包和视图,实现对长字符串的分割和正确输出。 ... [详细]
  • 反向投影技术主要用于在大型输入图像中定位特定的小型模板图像。通过直方图对比,它能够识别出最匹配的区域或点,从而确定模板图像在输入图像中的位置。 ... [详细]
  • 本文详细记录了一位具有五年半开发经验的候选人,在华为Android高级开发职位面试过程中的经历。从早晨9点到下午5点半,经过了群体面试、技术面试、综合面试及英语面试等多个环节,最终成功通过考核。文章不仅分享了面试心得,还提供了宝贵的面试题资源。 ... [详细]
  • 本文介绍如何在SQL Server中对Name列进行排序,使特定值(如Default Deliverable Submission Notification)显示在结果集的顶部。 ... [详细]
  • 本文详细介绍了如何通过RPM包在Linux系统(如CentOS)上安装MySQL 5.6。涵盖了检查现有安装、下载和安装RPM包、配置MySQL以及设置远程访问和开机自启动等步骤。 ... [详细]
  • 本文介绍了如何使用JavaScript的Fetch API与Express服务器进行交互,涵盖了GET、POST、PUT和DELETE请求的实现,并展示了如何处理JSON响应。 ... [详细]
  • 黑马头条项目:Vue 文章详情模块与交互功能实现
    本文详细介绍了如何在黑马头条项目中配置文章详情模块的路由、获取和展示文章详情数据,以及实现关注、点赞、不喜欢和评论功能。通过这些步骤,您可以全面了解如何开发一个完整的前端文章详情页面。 ... [详细]
  • 探讨 HDU 1536 题目,即 S-Nim 游戏的博弈策略。通过 SG 函数分析游戏胜负的关键,并介绍如何编程实现解决方案。 ... [详细]
  • 在尝试使用C# Windows Forms客户端通过SignalR连接到ASP.NET服务器时,遇到了内部服务器错误(500)。本文将详细探讨问题的原因及解决方案。 ... [详细]
  • SpringMVC RestTemplate的几种请求调用(转)
    SpringMVCRestTemplate的几种请求调用(转),Go语言社区,Golang程序员人脉社 ... [详细]
  • 本文档汇总了Python编程的基础与高级面试题目,涵盖语言特性、数据结构、算法以及Web开发等多个方面,旨在帮助开发者全面掌握Python核心知识。 ... [详细]
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社区 版权所有