Asp.net mvc 4 MVC.net 4-部分视图:使用文本输入重新发布到self

Asp.net mvc 4 MVC.net 4-部分视图:使用文本输入重新发布到self,asp.net-mvc-4,partial-views,Asp.net Mvc 4,Partial Views,我正在使用局部视图显示图表。我在局部视图中添加了一些输入控件,以便可以重新生成图表 我让这个部分工作。但是,图表不是在原始局部视图中生成的,它只是打开另一个视图 局部视图: JS-对局部视图的原始调用 2个问题: 如何在原始部分视图上重新生成图表 如果我的模型(图像)没有显示此属性(定义字典?),如何将新图表参数传递回控制器 我能够部分地解决这个问题,只需将部分视图变成(完整)视图 现在我只需要将模型对象传递回视图??? (我是否使用表单提交?) 新观点 新控制器动作 尝试删除对象new{id=

我正在使用局部视图显示图表。我在局部视图中添加了一些输入控件,以便可以重新生成图表

我让这个部分工作。但是,图表不是在原始局部视图中生成的,它只是打开另一个视图

局部视图:

JS-对局部视图的原始调用

2个问题:

  • 如何在原始部分视图上重新生成图表

  • 如果我的模型(图像)没有显示此属性(定义字典?),如何将新图表参数传递回控制器


  • 我能够部分地解决这个问题,只需将部分视图变成(完整)视图

    现在我只需要将模型对象传递回视图??? (我是否使用表单提交?)

    新观点

    新控制器动作


    尝试删除对象
    new{id=“Chart_Request”}
    ,而不是
    GET
    put
    FormMethod.Post

    Up是视图还是局部视图?@lnanikian-这是局部视图。我能够点击所需的操作(QA_ChartRePost),它生成所需的图表,但不会在局部视图中重新呈现主视图(我没有发布主视图,因为它看起来不相关)。我也不确定如何组装指定的字典:id=“Chart\u Request”?也不确定提交表单是否正确。正如您所说,它将在另一个视图中打开。你能告诉我这个动作的代码吗?此外,您没有将正确的对象传递给您的操作。然后我可以试着回答。谢谢你的回复和澄清。我只想发布相关代码,以避免混乱和混乱。我将模型引用添加到部分视图代码中。调用的操作位于表单定义中@使用(Html.BeginForm(“QA_ChartRePost”,“Chart”,FormMethod.Get,new{id=“Chart_Request”}”),它将被表单提交触发,在这种情况下,表单提交可以是“Enter”。嗨,部分视图是否嵌套在视图的表单中?要从图像中检索参数,有两种选择,一种是使用Javascript。我知道有库可以做到这一点,但不太确定noe是否可以将此映像发送到服务器,然后使用代码获取参数。如何在主视图中渲染局部视图?
    @model DataCatalogV2.Models.DC.ImageModel
    <img id="imgWSChart" src="data:image/png;base64,@System.Convert.ToBase64String(Model.image)" alt="Workspace Chart" /> 
    
    @using (Html.BeginForm("QA_ChartRePost","Chart",FormMethod.Post, new { id = "Chart_Request" }))
    {
        <table>
            <tr>
                <td>
                    <button>Reset</button>
                </td>
                 <td>
                    <label>Start Range:</label>
                </td>
                 <td>
                    <input id='QAstartRange' value='@DataCatalogV2.Controllers.ChartController.dtSeriesStartDate' style='width: 185px;' />
                </td>
                  <td>
                    <label>End Range:</label>
                </td>
                <td>
                    <input id='QAendRange' value='@DataCatalogV2.Controllers.ChartController.dtSeriesEndDate' style='width: 185px;' />
                </td>
                <td>
                    <button>Plot Range</button>
    
                </td>
            </tr>
        </table>
    }
    
    [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult QA_ChartRePost(String Measurement, String Type, String Name, String Units, String StartDate, String EndDate, String HideQAFail, String Token)
        {
            DataCatalogV2.Models.DC.ImageModel item = new Models.DC.ImageModel();
            dtStartDate = Convert.ToDateTime(StartDate);
            dtEndDate = Convert.ToDateTime(EndDate);
    
    
            EyascoDBController EC = new EyascoDBController();
            if (EC.HasAccess(AppName))
            {
                //Dummy Vars
                item.image = MRMChart("1002.500.131.1.1", "500 - USBR - Temperature 1", "Degrees C", "5/30/2002 21:50", "5/13/2013 23:50", "true", "NONE1395870778280");
                //item.image = MRMChart(Measurement, Name, Units, StartDate, EndDate, HideQAFail, Token);
            }
            //return View(item);
            return PartialView("QA_Chart", item);
        }
    
    function popupChartQA(Measurement, Type, Name, Units, StartDate, EndDate, HideQAFail) {
    var url;
    Name = encodeURIComponent(Name);
    Measurement = encodeURIComponent(Measurement);
    var token = "NONE" + new Date().getTime(); //unique Token to force chart re-generation
    url = baseUrl + "/Chart/QA_Chart?Measurement=" + Measurement + "&Type=" + Type + "&Name=" + Name + "&Units=" + Units + "&StartDate=" + StartDate + "&EndDate=" + EndDate + "&HideQAFail=" + HideQAFail + "&Token=" + encodeURIComponent(token);
    showWaiting("Chart - QA");
    
    
    $.ajax({
        type: "GET",
        url: url,
        dataType: "html",
        success: function (data) {
            //alert( " Token:" + Token + "data: " + data);
            $("#chartDiv").html(data);
        }            });
    
     @using (Html.BeginForm("QA_ChartRePost", "Chart", FormMethod.Get ,new { id = "Chart_Request" }))
    
    @model DataCatalogV2.Models.DC.WSIMG
    @{
    ViewBag.Title = "ControlChart";
    ViewBag.BaseURL = DataCatalogV2.Controllers.HomeController.GetBaseUrl();
    }
    
    <script type="text/javascript">
    var di = grid.dataItem(grid.select());
    
    $(document).ready(function () {
        $("#QAstartdate").kendoDateTimePicker({
            //value: new Date(2014, 1, 1)
        });
        $("#QAstartRange").kendoDateTimePicker({
            value: new Date(2013, 1, 1)
        });
        $("#QAendRange").kendoDateTimePicker({
            value: new Date()
        });
    });
    </script>
    
    <h2>ControlChart</h2>
    
    <div id="ChartConrols"/>
    <div dir="ltr" style="background-color: tan; display:inline-block; azimuth:left-side; float:left">
     <img id="imgWSChart" src="data:image/png;base64,@System.Convert.ToBase64String(Model.myIM.image)" alt="Workspace Chart" />
    
    
    <div>
    @using (Html.BeginForm("QA_ChartRePost", "Chart", FormMethod.Get ,new { id = "Chart_Request" }))
    {
           <table>
            <tr>
                <td>
                    <button>Reset</button>
                </td>
                 <td>
                    <label>Start Range:</label>
                </td>
                 <td>
                    <input id='QAstartRange' value='@DataCatalogV2.Controllers.ChartController.dtSeriesStartDate' style='width: 185px;' />
                </td>
                  <td>
                    <label>End Range:</label>
                </td>
                <td>
                    <input id='QAendRange' value='@DataCatalogV2.Controllers.ChartController.dtSeriesEndDate' style='width: 185px;' />
                </td>
                <td>
                    <button>Plot Range</button>
    
                </td>
            </tr>
        </table>
    }
    
    </div>
    </div>
    
        public class WSIMG
    {
        public ImageModel myIM { get; set;}
        public WorkingSeries myWS { get; set;}
    }
    
    public class WorkingSeries
    {
        [Key]
        public Int32 id { get; set; }
        public String Type { get; set; }
        public String Name { get; set; }
        public String Lookup { get; set; }
        public String Units { get; set; }
        public DateTime StartDate { get; set; }
        public DateTime EndDate { get; set; }
        public Boolean HideQAFail { get; set; }
        public Boolean MultiChart { get; set; }
    }
     public class ImageModel
    {
        public byte[] image { get; set; }
    }
    
     [HttpGet]
        //public ActionResult QA_ChartRePost(String Measurement, String Type, String Name, String Units, String StartDate, String EndDate, String HideQAFail, String Token)
        public ActionResult QA_ChartRePost(WSIMG WSIMGmodel)
        {
            //ImageModel item = WSIMGmodel.myIM;
    
            EyascoDBController EC = new EyascoDBController();
            if (EC.HasAccess(AppName))
            {
            WSIMGmodel.myIM.image = MRMChart(WSIMGmodel.myWS.Lookup, WSIMGmodel.myWS.Name, WSIMGmodel.myWS.Units, WSIMGmodel.myWS.StartDate.ToString(), WSIMGmodel.myWS.EndDate.ToString(), WSIMGmodel.myWS.HideQAFail.ToString(), "NONE1395870778280");
            }
            return PartialView("ControlChart", WSIMGmodel); 
    
        }