我有以下视图,它创建了10个ajax.beginform,但是我面临的问题是在创建对象期间发生错误然后尽管我已经设置了ModelState.AddModelError但不会在视图上显示该@Html.ValidationSummary(true)
视图看起来如下
@model Medical.Models.VisitLabResult
@for (int item = 0; item < 10; item++)
{
<tr id = @item>
@using (Ajax.BeginForm("CreateAll", "VisitLabResult", new AjaxOptions
{
HttpMethod = "Post",
UpdateTargetId = item.ToString() + "td",
InsertionMode = InsertionMode.Replace,
LoadingElementId = "progress2",
OnSuccess = string.Format(
"disableform({0})",
Json.Encode(item)),
}))
{
@Html.ValidationSummary(true)
@Html.AntiForgeryToken()
<td>
@Html.DropDownList("LabTestID", String.Empty)
@Html.ValidationMessageFor(model => model.LabTestID)
</td>
<td>
@Html.EditorFor(model => model.Result)
@Html.ValidationMessageFor(model => model.Result)
</td>
<td>
@Html.EditorFor(model => model.DateTaken)
@Html.ValidationMessageFor(model => model.DateTaken)
</td>
<td>
@Html.EditorFor(model => model.Comment)
@Html.ValidationMessageFor(model => model.Comment)
</td>
<td> …Run Code Online (Sandbox Code Playgroud) 使用asp.net核心web api,我想让我的控制器动作方法返回一个jpeg图像流.
在我当前的实现中,浏览器仅显示json字符串.我的期望是在浏览器中看到图像.
在使用chrome开发人员工具进行调试时,我发现内容类型仍然存在
Content-Type:application/json; charset=utf-8
在响应头中返回,即使在我的代码中我手动将内容类型设置为"image/jpeg".
寻找解决方案 My Web API如下所示
[HttpGet]
public async Task<HttpResponseMessage> Get()
{
var image = System.IO.File.OpenRead("C:\\test\random_image.jpeg");
var stream = new MemoryStream();
image.CopyTo(stream);
stream.Position = 0;
result.Content = new StreamContent(image);
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
result.Content.Headers.ContentDisposition.FileName = "random_image.jpeg";
result.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg");
result.Content.Headers.ContentLength = stream.Length;
return result;
}
Run Code Online (Sandbox Code Playgroud)
我正在使用隐藏字段在asp.net页面中存储值.基本上,每当表单上的值更改时,我都会设置隐藏字段的值,即名字,日期等.该字段位于具有母版页并位于内容部分的网页表单中:
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<asp:HiddenField ID="hdnDirtyFlag" runat="server" Value='false' />
Run Code Online (Sandbox Code Playgroud)
每当onchange事件在Web表单上的其他控件中触发时,我通过调用函数来更改javascript中字段的值:
<asp:TextBox CssClass="niceInput" ID="tbFirstName" runat="server" MaxLength="40" Width="150" onchange='SetHiddenVariable();'></asp:TextBox>
<script type="text/javascript">
function SetHiddenVariable() {
// Set the value of the hidden variable so we know a field has been updated
var hiddenControl = '<%= hdnDirtyFlag.ClientID %>';
document.getElementById(hiddenControl).value = 'true';
}
</script>
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.当页面加载时,隐藏字段值为"false",如果我不更改webform上的任何值,则它仍为false.每当我更改另一个控件时,javascript函数都会被调用,隐藏字段值会更新为"true".这一切都很好.
提交表单并更新数据库后,我在后面的代码中将隐藏字段值设置回'false':
hdnDirtyFlag.Value = "false";
Run Code Online (Sandbox Code Playgroud)
但是,当我单击另一个按钮并进行回发时,隐藏的字段值仍为"true".
谁能解释为什么会这样?我介绍了后面的代码,并在更改值后立即看到值为'false'.页面上有一个asp:UpdatePanel,但隐藏字段不是此面板的一部分.
编辑:
这是我在第一次回发的最后一步中将其设置为false后,在第二次回发中检查后面代码中的字段值的代码.由于某种原因,在第二次回发中,值在客户端的javascript中设置为true,然后在代码后面设置为false,如上所示:
if (hdnDirtyFlag.Value == "true")
{
UpdateSecurityObject();
}
Run Code Online (Sandbox Code Playgroud) 在这个查询中我有3条记录(int-(telefon = d.telefon),decimal-(pesel = d.pesel),decimal-(nip = d.nip))另一条记录是字符串.
public ActionResult detail(int LoginID)
{
var user = (from d in baza.uzytkowniks
where LoginID == d.LoginID
select new uzytkownikModel {
imie = d.imie,
nazwisko = d.nazwisko,
telefon = d.telefon,
pesel = d.pesel,
nip = d.nip,
email = d.email,
adres_zamieszkania = d.adres_zamieszkania}).ToList();
ViewBag.daneuser = user;
return View();
}
Run Code Online (Sandbox Code Playgroud)
我有错误:
无法隐式转换类型'int?' 'int'.存在显式转换(您是否错过了演员?)
和'十进制'两个错误?而不是'int?'.
模型:
public class uzytkownikModel
{
[Required]
public string imie { get; set; }
[Required]
public string nazwisko { get; set; …Run Code Online (Sandbox Code Playgroud) 我在Razor视图的下拉列表中有一个项目列表.在数据库中,每个项目都有3个与之关联的值 - 数据库ID,短名称(用于显示)和长名称(用于传递给服务).下拉列表必须显示短名称,因此我填充下拉列表,其中数据库ID为值,短名称为文本.
然而,当用户选择项目时,我需要将长名称作为查询参数传递给使用jQuery的搜索服务,例如当选择Cortina时,需要将"Ford Cortina 1979 Blue"传递给该服务.我的第一个想法是将长名称存储为数据短划线属性,但我想知道是否有更好的方法.所以
D B:
CARID SHORT_NAME LONG_NAME
1 Viper Dodge Viper 1982
2 Boxster Porsche Boxster 2009 Black
3 Cortina Ford Cortina 1979 Blue
Run Code Online (Sandbox Code Playgroud)
控制器助手创建下拉列表:
public static IEnumerable<SelectListItem> GetSelectList(this IEFRepository repository, string typeName)
{
var vehicle = repository.TypeTypes.FirstOrDefault(t => t.Name.ToUpper() == typeName);
if (vehicle != null)
{
var carList = vehicle.SubTypes.ToList().OrderBy(s => s.Name);
var selectList = new SelectList(subTypeList, "SubTypeID", "Name");
return selectList;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我用来创建下拉列表的代码:
<div class="editor-field">
@Html.DropDownListFor(model => model.CarID,
new SelectList(ViewBag.Cars, "Value", …Run Code Online (Sandbox Code Playgroud) 我有两个输入字段,如下所示:
<input name="accountCode" class="accountCode grid_2"/>
<input name="accountCode" class="accountCode grid_2"/>
Run Code Online (Sandbox Code Playgroud)
我希望在这两个领域都有自动完成功能.我写了以下JavaScript:
$(".accountCode").autocomplete(
{
minLength : 1,
source : function(request, response) {
$.ajax({
url : baseUrl + "Autocomplete/Account?accountCode=" + $(this).val(),
dataType : "json",
success : function(data) {
response($.map(data, function(item) {
return {
value : item.accountCode,
desc : item.accountName
}
}));
}
});
},
focus : function(event, ui) {
$(this).val(ui.item.accountCode);
return false;
},
select : function(event, ui) {
// $("#category").val( ui.item.name );
$(this).val(ui.item.value);
// $( "#project-description" ).html( ui.item.desc );
return false;
}
}).data("autocomplete")._renderItem …Run Code Online (Sandbox Code Playgroud) 我正在使用Oracle SQL Developer编写代码.我有一个简单的select语句有效:
SELECT
CFS.CAE_SEC_ID,
CFS.FM_SEC_CODE,
CFS.LAST_USER_ID,
case
when 1 = 1 then
sl.usbank_to_edit
else
case
when 'ENT\CB174' = CFS.last_user_id then
sl.owner_to_edit
else
sl.to_edit
end
end canEdit
FROM
CAEDBO.CAE_FOF_SECURITY CFS
INNER JOIN caedbo.CAE_DATA_SET_ELEMENT CDSE_STAT
ON (CDSE_STAT.DATA_SET_ELEMENT_ID = CFS.APPR_STATUS)
INNER JOIN caedbo.CAE_STATE_LOOKUP sl
ON (sl.object_state = CDSE_STAT.data_set_element_id)
where
cfs.CAE_SEC_ID in (3741, 3744, 3748, 3752);
Run Code Online (Sandbox Code Playgroud)
但是我想为它添加一些变量并引用语句中的变量,类似于下面的内容,并且还在代码窗口中运行它.我该怎么做呢?
DECLARE
p_USBank_n NUMBER;
p_user_id_c VARCHAR2(20);
BEGIN
p_USBank_n := 1;
p_user_id_c := 'ENT\CB174';
SELECT
CFS.CAE_SEC_ID,
CFS.FM_SEC_CODE,
CFS.LAST_USER_ID,
case
when p_USBank_n = 1 then
sl.usbank_to_edit
else
case
when …Run Code Online (Sandbox Code Playgroud) 我正在测试一个null列表.每次我找到一个,我都将它保存在一个数组中,以在验证消息中实现它.
我想要的输出看起来像这样:
需要字段1
字段4是必需的
等等...
但我似乎无法开始一条新线.
现在,它看起来像这样:
需要字段1字段4是必需的
有谁知道如何实现这一目标?
编辑:
控制器:
IDictionary<int, String> emptyFields = new Dictionary<int, String>();
foreach (Something thing in AnotherThing.Collection)
{
if (thing.Property == null)
emptyFields.add(thing.Index, thing.Name);
}
if (emptyFields.Any())
throw new CustomException() { EmptyFields = emptyFields };
Run Code Online (Sandbox Code Playgroud)
此处处理此异常:
catch (CustomException ex)
{
ModelState.AddModelError("file", ex.GetExceptionString());
return View("theView");
}
Run Code Online (Sandbox Code Playgroud)
CustomException:
public class CustomException: Exception
{
public IDictionary<int,String> EmptyFields { get; set; }
public override String Label { get { return "someLabel"; } }
public override String GetExceptionString()
{ …Run Code Online (Sandbox Code Playgroud) asp.net-mvc newline line-breaks asp.net-mvc-3 validationmessage
我想使用Amazon EC2,但我需要知道是否存在带有GUI的Linux发行版的AMI.
我正在努力解决这个问题.现在正在查看JQuery验证的示例和工具超过3个小时.
我想要做的就是要求选中一个复选框和一个单选按钮,但我不在乎需要哪一个.
<form id="form1" action="/controller/action" method="post">
<div class="checkbox"><input type="checkbox" name="box1" class="cBox" /><label for="box1" class="label">Box1</label></div>
<div class="checkbox"><input type="checkbox" name="Box2" class="cBox" /><label for="Box2" class="label">Box2</label></div>
<div class="checkbox"><input type="checkbox" name="Box3" class="cBox" /><label for="Box3" class="label">Box3</label></div>
<div class="radio"><input type="radio" name="print" value="Radio1" class="rad" /><label class="label">Radio1</label></div>
<div class="radio"><input type="radio" name="print" value="Radio2" class="rad" /><label class="label">Radio2</label></div>
<div class="radio"><input type="radio" name="print" value="Radio3" class="rad" /><label class="label">Radio3</label></div>
<input type="submit" value="Submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
jquery ×2
razor ×2
amazon-ec2 ×1
asp.net ×1
asp.net-core ×1
asp.net-mvc ×1
autocomplete ×1
content-type ×1
forms ×1
hidden-field ×1
javascript ×1
jquery-ui ×1
line-breaks ×1
linq ×1
newline ×1
oracle ×1
plsql ×1
validation ×1