C# asp.NET MVC将信息传递给PartialView
我正在开发一个基于asp.NETMVC5的应用程序 此应用程序从本地Web服务下载大量数据,并应显示这些数据。 因为它包含大量数据,所以我通过局部视图调用webservice,如下所示:C# asp.NET MVC将信息传递给PartialView,c#,javascript,asp.net,asp.net-mvc,parameter-passing,C#,Javascript,Asp.net,Asp.net Mvc,Parameter Passing,我正在开发一个基于asp.NETMVC5的应用程序 此应用程序从本地Web服务下载大量数据,并应显示这些数据。 因为它包含大量数据,所以我通过局部视图调用webservice,如下所示: <div class="partialContents" id="partialContent" data-url="/Home/Action"> Loading... </div> public class PostForm { public strin
<div class="partialContents" id="partialContent" data-url="/Home/Action">
Loading...
</div>
public class PostForm
{
public string DatumVon { get; set; }
public string DatumBis { get; set; }
public string Werk { get; set; }
public string Pruefplatz { get; set; }
public string Auftrag { get; set; }
public string Gueltig { get; set; }
}
$(item).load(url, {"DatumVon":dateVon, "DatumBis":dateBis, "Werk":werk, "Pruefplatz":pruefplatz, "Auftrag":auftrag, "Gueltig":gueltig});
这就像预期的那样
但是现在我必须将表单的值传递给这个局部视图。
我知道我可以像往常一样传递参数,比如对/Home/Action/Params
的请求,但我必须传递许多参数,其中一些参数可能未设置或为空或空。
因此,我寻找一种可能性,将ViewBag的对象或值或类似的内容传递给局部视图
在我的代码中是否有可能将模型对象传递给控制器?
数据必须送到控制器进行进一步验证等等。我知道我可以将模型传递给视图本身,但我需要控制器中的这些数据
通过以下方式访问我的控制器:
public ActionResult Index()
{
//Do things
return View(model);
}
public ActionResult Action()
{
//Validate the Form-Data
//Download Data from Webservice
return PartialView("MyPartialView", model);
}
任何帮助或提示都将不胜感激
也许我必须编辑Javascript代码,但我通常不使用JS编写代码,因此我有以下来源的代码(遵循他的教程):
//其他信息
我的ViewModel如下所示:
<div class="partialContents" id="partialContent" data-url="/Home/Action">
Loading...
</div>
public class PostForm
{
public string DatumVon { get; set; }
public string DatumBis { get; set; }
public string Werk { get; set; }
public string Pruefplatz { get; set; }
public string Auftrag { get; set; }
public string Gueltig { get; set; }
}
$(item).load(url, {"DatumVon":dateVon, "DatumBis":dateBis, "Werk":werk, "Pruefplatz":pruefplatz, "Auftrag":auftrag, "Gueltig":gueltig});
我的Java请求如下:
<div class="partialContents" id="partialContent" data-url="/Home/Action">
Loading...
</div>
public class PostForm
{
public string DatumVon { get; set; }
public string DatumBis { get; set; }
public string Werk { get; set; }
public string Pruefplatz { get; set; }
public string Auftrag { get; set; }
public string Gueltig { get; set; }
}
$(item).load(url, {"DatumVon":dateVon, "DatumBis":dateBis, "Werk":werk, "Pruefplatz":pruefplatz, "Auftrag":auftrag, "Gueltig":gueltig});
如果有很多参数要传递给action方法,请创建一个包含这些参数的模型。例如,我在下面创建了MyParamModel类:
public class MyParamModel
{
//Your parameters go here
public int IntProperty { get; set; }
public string StringProperty { get; set; }
}
然后修改action方法以接受此类作为参数
public ActionResult Action(MyParamModel model)
修改脚本中的加载调用,将信息传递到url,如下所示
$(item).load(url, {"IntProperty":1, "StringProperty": "test"});
一旦控制器端有了模型,就可以相应地对其进行验证。
希望这有帮助。如果有,请将此标记为答案。谢谢您的回答。看来这是可行的。由于复活节周末的关系,我将在周三尝试你的解决方案。如果有效,我会将您的解决方案标记为正确;)我试过你的解决办法。如果我让它完全像你一样,它会终止并告诉我
没有为这个对象定义无参数构造函数。
但是在请求体中,我看到了数据。所以我试着通过使用Request.Form
-集合来获取它,但是这只返回,嗯,什么也没有。甚至不是空字符串或null。您能提供视图模型的代码吗?我希望你的模型没有一个没有参数的构造函数。几秒钟前,我解决了这个问题:是的,因为我的控制器是用参数实现的:public ActionResult Action(PostForm)
,但它需要一个没有参数的方法,比如public ActionResult Action()
你知道为什么会发生这种情况吗?@stueli:这些是你描述的错误的链接。检查它们是否有用。和