繁体   English   中英

asp.NET MVC将信息传递给PartialView

[英]asp.NET MVC Pass Informations to PartialView

我正在开发基于ASP.NET MVC 5的应用程序

此应用程序从本地Web服务下载了大量数据,并应显示它们。 因为数据很多,所以我通过局部视图调用了Web服务,如下所示:

<div class="partialContents" id="partialContent" data-url="/Home/Action">
   Loading...
</div>

这是通过以下JS代码异步加载的:

$(document).ready(function (e) {
        $(".partialContents").each(function (index, item) {
            var url = $(item).data("url");
            if (url && url.length > 0) {
                $(item).load(url);
            }
        });
    });

这像预期的那样工作。

但是现在我必须将表单的值传递给此局部视图。 我知道我可以像往/Home/Action/Params的请求一样照常传递参数,但是我必须传递许多可能未设置或为空或为null的参数。 因此,我寻求将对象或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代码,因此我有以下来源的代码(遵循他的教程): blog.michaelckennedy.net

//附加信息

我的ViewModel看起来像这样:

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; }
    }

和我的Java请求是这样的:

$(item).load(url, {"DatumVon":dateVon, "DatumBis":dateBis, "Werk":werk, "Pruefplatz":pruefplatz, "Auftrag":auftrag, "Gueltig":gueltig});

如果要传递给动作方法的参数很多,请创建一个包含这些参数的模型。 例如,我在下面创建了MyParamModel类:

 public class MyParamModel
 {
    //Your parameters go here
    public int IntProperty { get; set; }
    public string StringProperty { get; set; }
 }

然后,修改操作方法以将该类用作参数。

public ActionResult Action(MyParamModel model)

修改脚本中的load调用,以将信息传递给url,如下所示。

$(item).load(url, {"IntProperty":1, "StringProperty": "test"});

将模型放在控制器端后,就可以相应地对其进行验证。 希望这可以帮助。 如果是这样,请将其标记为答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM