C#.NET MVC4-方法的非null类型参数的null项

C#.NET MVC4-方法的非null类型参数的null项,c#,asp.net,.net,asp.net-mvc,asp.net-mvc-4,C#,Asp.net,.net,Asp.net Mvc,Asp.net Mvc 4,在我的c#.net项目中,当我试图让onClick事件开始时,我遇到了这个错误。我想我可能丢失了一个重要的程序集引用,但无法找出发生此错误的原因。直到最近,这个项目一直运行良好,我所做的一些修改导致了这个问题 问题 应用程序中的服务器错误 “/”应用程序中出现服务器错误 参数字典包含“MyDisplayTracking.Controllers.HomeController”中方法“System.Web.Mvc.ActionResult Index(Double,Double,System.Str

在我的c#.net项目中,当我试图让onClick事件开始时,我遇到了这个错误。我想我可能丢失了一个重要的程序集引用,但无法找出发生此错误的原因。直到最近,这个项目一直运行良好,我所做的一些修改导致了这个问题

问题

应用程序中的服务器错误 “/”应用程序中出现服务器错误

参数字典包含“MyDisplayTracking.Controllers.HomeController”中方法“System.Web.Mvc.ActionResult Index(Double,Double,System.String,System.String,System.String,System.String,System.String)”的非空类型“System.Double”的参数“lat”的空条目。可选参数必须是引用类型、可为null的类型或声明为可选参数。 参数名称:参数

描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源

异常详细信息:System.ArgumentException:parameters dictionary包含“MyDisplayTracking.Controllers.HomeController”中方法“System.Web.Mvc.ActionResult Index(Double,Double,System.String,System.String,System.String,System.String)”的不可为空类型“System.Double”的参数“lat”的空条目。可选参数必须是引用类型、可为null的类型或声明为可选参数。 参数名称:参数

源错误:

在执行当前web请求期间生成了未经处理的异常。有关异常的起源和位置的信息可以使用下面的异常堆栈跟踪来识别

堆栈跟踪:

[ArgumentException:parameters dictionary包含不可为null的类型为'System.Double'的参数'lat'的null条目,用于方法'System.Web.Mvc.ActionResult索引(Double,Double,System.String,System.String,System.String,System.String,System.String)'在'MyDisplayTracking.Controllers.HomeController'中。可选参数必须是引用类型、可为Null的类型或声明为可选参数。 参数名称:参数] System.Web.Mvc.ActionDescriptor.ExtractParameterFromDictionary(ParameterInfo ParameterInfo,IDictionary
2参数,MethodInfo MethodInfo)+664911
System.Web.Mvc.c_uuudisplayClass1.b_uuu0(ParameterInfo ParameterInfo)+18
System.Linq.whereselectArrayInterator
2.MoveNext()+85 System.Linq.Buffer
1..ctor(IEnumerable
1源)+217 System.Linq.Enumerable.ToArray(IEnumerable
1源代码)+78
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext ControllerContext,IDictionary
2个参数)+133 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext ControllerContext,ActionDescriptor ActionDescriptor,IDictionary
2参数)+27
System.Web.Mvc.Async.c__显示类42.b__41()+28
System.Web.Mvc.Async.c_uuudisplayClass8
1.b_uuu7(IAsyncResult)+12 System.Web.Mvc.Async.WrappedAsyncResult
1.End()+57
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)+50
System.Web.Mvc.Async.c__显示类39.b__33()+58
System.Web.Mvc.Async.c__DisplayClass4f.b__49()+237
System.Web.Mvc.Async.c__显示类37.b__36(IAsyncResult asyncResult)+12
System.Web.Mvc.Async.WrappedAsyncResult
1.End()+57 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult)+50 System.Web.Mvc.Async.c__DisplayClass2a.b__20()+24 System.Web.Mvc.Async.c__显示类25.b__22(IAsyncResult asyncResult)+126 System.Web.Mvc.Async.WrappedAsyncResult
1.End()+57
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult)+45
System.Web.Mvc.c__;u displayClassId.b__u18(IAsyncResult asyncResult)+14
System.Web.Mvc.Async.c_uuuudisplayClass4.b_uuuu3(IAsyncResult ar)+25
System.Web.Mvc.Async.WrappedAsyncResult
1.End()+62 System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)+61 System.Web.Mvc.Async.c_uuuudisplayClass4.b_uuuu3(IAsyncResult ar)+25 System.Web.Mvc.Async.WrappedAsyncResult
1.End()+62
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult)+49
System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult)+10
System.Web.Mvc.c_uuuu显示Class8.b_uuuu3(IAsyncResult asyncResult)+28
System.Web.Mvc.Async.c_uuuudisplayClass4.b_uuuu3(IAsyncResult ar)+25
System.Web.Mvc.Async.WrappedAsyncResult
1.End()+62 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)+49 System.Web.Mvc.MvcHandler.System.Web.IHTTPassynchandler.EndProcessRequest(IAsyncResult结果)+9 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+90429 System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值&同步完成)+184

版本信息:Microsoft.NET Framework版本:4.0.30319;ASP.NET版本:4.0.30319.1016

\ 主控台:

 public ActionResult MyStores(double lat, double lng, string storename, string city, string state, string distributor, string channels)
    {
        MyStoresModel r = new MyStoresModel();
        r.stores = new List<StoreDataModel>();
        using (DisplayTrackingEntities ctx = new DisplayTrackingEntities())
        {
public ActionResult MyStores(双lat、双lng、字符串storename、字符串城市、字符串州、字符串分发者、字符串频道)
{
MyStoresModel r=新MyStoresModel();
r、 存储=新列表();
使用(DisplayTrackingEntities ctx=新的DisplayTrackingEntities())
{
我试图从我的索引视图调用它,如下所示:

            <input type="hidden" id="lat" name="lat" />
        <input type="hidden" id="lng" name="lng" />
        <div class="row">
            <div class="form-actions">
                <button class="btn" onclick="return UseGPS();">Use GPS</button>
                <button class="btn" onclick="return Search();">Search</button>
            </div>
        </div>

使用全球定位系统
搜寻

您得到的是
System.ArgumentException
,因为您没有为任何一个隐藏字段赋值。您的视图应该看起来像
<input type="hidden" id="lat" name="lat" value="1.234" />
<input type="hidden" id="lng" name="lng" value="5.678" />