2015-05-09 87 views
0

我試圖在控制器發送來自控制器的整數值,以查看和顯示在視圖乘以0.2整數值,以查看在asp.net MVC

這裏的代碼

public ActionResult Details() 
    { 

     ViewBag["salary"] = 1400; 
     return View(); 
    } 

和鑑於代碼

@{ 
Layout = null; 


    int Salary=int.Parse(@ViewBag["salary"]); 
} 

<!DOCTYPE html> 
<html> 
<head> 
    <meta name="viewport" content="width=device-width" /> 
    <title>Details</title> 
</head> 
<body> 
    <div> 
     <p> Salary: </p> 
     @(Salary/0.2) 
    </div> 
</body> 
</html> 

但它拋出一個異常

類型「Microsoft.CSharp.RuntimeBinder.RuntimeBinderException」的異常出現在 System.Core.dll但在用戶代碼中沒有處理

其他信息:無法應用用[]索引,以類型的表達式 ' System.Dynamic.DynamicObject」

回答

1

使用此代碼在您的控制器:

ViewBag.salary = 1400; 

而這種代碼在你看來:

int Salary=(int)ViewBag.salary; 
3

使用ViewBag通常被認爲是不好的做法,我建議使用模型(模型 - 視圖 - 控制器)。我還會提到,在視圖中添加邏輯也是不好的做法,您的邏輯應該由Controller來控制。

模型

public class DetailsVM 
{ 
    public decimal Salary { get; set ; } 
} 

控制器(方法)

public ActionResult Details() 
{ 
    var model = new DetailsVM(); 
    model.Salary = 1400/0.2; 
    return View(model); 
} 

查看

@model DetailsVM 
@{ 
    Layout = null; 
} 

<!DOCTYPE html> 
<html> 
<head> 
<meta name="viewport" content="width=device-width" /> 
<title>Details</title> 
</head> 
<body> 
<div> 
    <p> Salary: </p> 
    @Model.Salary 
</div> 
</body> 
</html>