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