asp.net - Interaction of data between View and Controller -


my controller function , variable "money"

static int? money = 500;  public actionresult submitpurchase(int? orderprice)     {         money = money - orderprice;          viewbag.money = money;          if (db.purchases.any())         {             db.database.executesqlcommand("delete purchaselists");             return view();         }         else return redirecttoaction("order");     } 

my view

<div align="center">      <p><h1>thank you!</h1></p>      <p><h2>your balance @viewbag.money</h2></p>      <p><h2>come again plz! :)</h2></p>  </div>  <a href="/home/order">      <input type="button" value="main menu"/>  </a>

another view sends url value orderprice in function submitpurchase. problem @viewbag.money in view dosen't shown, should show value of variable money after calculating in function submitpurchase. wrong?

if not passing valid integer value orderprice parameter, code try execute 500-null results in null , null value stored in money variable , set viewbag.

you can null check before doing maths prevent happening.

if(orderprice!=null)     money = money - orderprice; 

the url trying access http://localhost:61314/home/submitpurchase/49 . default mvc route registration, not map orderprice parameter of method. can either update code have url generated like

http://localhost:61314/home/submitpurchase?orderprice=49

or update action method parameter name id

 public actionresult submitpurchase(int? id)  {     if(id!=null)         money = money - id;      //     return view();  } 

assuming submitpurchaseview (submitpurchase.cshtml) has code read viewbag item , display it.


Comments