asp.net-mvc - 如何获得过去的Null错误?

标签 asp.net-mvc razor compiler-errors null

我有一个asp/razor网页,用于填充镜头数据及其选项。

我想返回一个称为SID的值(如果不存在),然后为空。

我正在使用if语句来执行此操作,但浏览器报告了一个错误:

Server Error in '/' Application.
--------------------------------------------------------------------------------
Compilation Error 
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: CS0103: The name 'SID' does not exist in the current context

Source Error:

Line 238:            <div class="row">
Line 239:                <span class="label"><label for="salesid">SalesID:</label></span>
Line 240:                <input type="text" name="salesid" id="salesid" value=@SID size="15" />
Line 241:            </div>}
Line 242:            else {@message;} 

Source File: ~\DiscountCustomers.cshtml    Line: 240 

--------------------------------------------------------------------------------
@{
   Layout = "~/_SiteLayout.cshtml"; 

   var db = Database.Open("A-LensCatFE-01SQL") ; 

   var CustomerCode = UrlData[0];

   var message = "";

   // vars for dropdowns:
   var ListSRP =db.Query("Select * FROM lstSRPBasedOn");
   var LensName = db.Query("Select Form, ShortName FROM dbo.qryLAStyleMin ORDER BY Form");

   // vars for modal forms insert data:
   var query = ("Select * from dbo.qryCustomersAll Where CustomerCode= @0");
   var data = db.QuerySingle(query, CustomerCode);
   var emcid = data.CID;

   var query1 = ("Select CatID from dbo.qryCustomersAll Where CustomerCode= @0");
   var catid = db.QueryValue(query1, CustomerCode);

   var query3 =("Select * from dbo.qryPromo2 Where CustomerCode=@0");
   var data3 = db.QuerySingle(query3, CustomerCode);

   if (data3 != null)
               {var SID = data3.SalesID;}
               else 
               { message="Data not found";} 

  }
---------------------------------------------------------------
 @if (data3 != null){
            <div class="row">
                <span class="label"><label for="salesid">SalesID:</label></span>
                <input type="text" name="salesid" id="salesid" value=@SID size="15" />
            </div>}
            else {@message;}
---------------------------------------------------------------

我究竟做错了什么?以及如何解决这个问题?谢谢。

最佳答案

SIDif语句内声明,因此不在范围内。将声明移到if语句之外。

(假设SID是int)

int SID = 0;
if (data3 != null)
    {SID = data3.SalesID;}
else 
    { message="Data not found";}

关于asp.net-mvc - 如何获得过去的Null错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16690614/

相关文章:

c# - 使用 Razor 模板创建一个包含 n 列的表

asp.net-mvc - 当目标是在 View 中显示此图像时,我应该在模型中使用哪种图像?

c++ - 访问 Multiset 元素 C++ 时出错

asp.net-mvc - Umbraco 中的 session 开始和 session 结束

.net - orchard cms 删除/删除内容项

c# - MVC Unobtrusive validation data-val-* markup attributes not being generated

c# - Azure 和 Sendgrid 连接问题

spring - 用 Thymeleaf 扩展视野

qt - 交叉编译和部署 Valgrind 到嵌入式 linux 设备

c++ - Googletest 编译错误 : ‘xyzTest’ was not declared in this scope