我在我的mvc视图中使用bootstrap 3选项卡.我想在标签更改上呈现另一个局部视图.这是选项卡的代码
<ul class="nav nav-tabs">
<li class="active" id="studentList">
<a href="#tab_1_1" data-toggle="tab" aria-expanded="true">
Student List </a>
</li>
<li class="" id="studentAddEdit">
<a href="#tab_1_2" data-toggle="tab" aria-expanded="false">
Student Add/Edit </a>
</li>
Run Code Online (Sandbox Code Playgroud)
<div class="tab-content">
<div class="tab-pane fade active in" id="tab_1_1">
<p>
@Html.Action("StudentList","Student")
</p>
</div>
<div class="tab-pane fade" id="tab_1_2">
<p>
@Html.Action("StudentAddEdit","Student", new {id=Model.StudentId})
</p>
</div>
Run Code Online (Sandbox Code Playgroud)
它呈现studentAddEdit视图加载视图.我想studentAddEdit在用户更改选项卡并选择studentAddEdit选项卡时再次呈现视图.有建议的解决方案 我目前正在使用jquery但没有成功.
如何td使用MVC4 删除表格中的单元格?
我可以使用JQuery还是JavaScript?如果是这样,怎么样?
<table class="table table-striped table-bordered table-hover" id="tblParticipantList">
<thead>
<tr>
<th>Name</th>
<th>Adress</th>
<th>Redeem Code</th>
</tr>
</thead>
<tbody>
<tr data-id="columnId" id="customerPartial_94">
<td data-field="NAME">Attn Donna</td>
<td data-field="ADDRESS">3046 Lavon Drive Newyork America 7504</td>
<td data-field="SECURITY_REDEMPTION_CD"></td>
</tr>
<tr data-id="columnId" id="customerPartial_95">
<td data-field="NAME">F 1 La 1</td>
<td data-field="ADDRESS">Asd 1 s 1 Ci 1 s</td>
<td data-field="SECURITY_REDEMPTION_CD"></td>
</tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud) 我正在使用Hangfire执行作业,并且我想更改一天后从数据库中删除成功作业的行为-我希望将它们存储一年。
按照此线程中的指示(与该SO问题中的指示相同),我创建了一个类:
public class OneYearExpirationTimeAttribute : JobFilterAttribute, IApplyStateFilter
{
public void OnStateUnapplied(ApplyStateContext context, IWriteOnlyTransaction transaction)
{
context.JobExpirationTimeout = TimeSpan.FromDays(365);
}
public void OnStateApplied(ApplyStateContext context, IWriteOnlyTransaction transaction)
{
context.JobExpirationTimeout = TimeSpan.FromDays(365);
}
}
Run Code Online (Sandbox Code Playgroud)
然后在Asp.net Web API启动类中将其注册为全局过滤器:
public class Startup
{
public void Configuration(IAppBuilder app)
{
// ... other stuff here ...
GlobalJobFilters.Filters.Add(new OneYearExpirationTimeAttribute());
GlobalConfiguration.Configuration.UseSqlServerStorage("HangFireDBConnection");
app.UseHangfireDashboard();
}
}
Run Code Online (Sandbox Code Playgroud)
Web api是发布作业(即调用BackgroundJob.Enqueue(() => ...)发生)的地方。我尚未更改执行实际作业的客户端的配置。
如果我现在发布一项作业并成功完成,则该有效期仍为一天,如您在屏幕截图中所见,该屏幕截图同时显示了仪表板和HangfireDb中的条目,
我做错了什么或我想念什么?
在整个应用程序中访问数据的最佳方法是什么?在我的具体示例中,我将应用程序的设置从XML文件加载到Settings-Object的实例中,我不想让这些设置为绝对常量,因为用户应该能够更改这些(并查看效果) )无需重新启动程序.
现在,我需要在其他类的方法中使用某些(属性)设置,但是这样它们是不可访问的.那么我应该在什么样的"对象"中存储设置?我不认为在我的应用程序中需要设置的每个方法都必须查看XML本身.此外,将设置实例传递给我使用的每个其他类似乎太麻烦了.
提前致谢!
我试图解决这个问题几个小时,绝对不明白编译器在这里做了什么.我有基本上看起来像这样的字符串:
"KL10124 Traitor #2 - +XX-+0.25 - More Stuff"
Run Code Online (Sandbox Code Playgroud)
并需要以编程方式读取双"0.25".调用s以上的字符串,以下两行不起作用:
string[] h = s.Split('-');
string h2 = h[2].Substring(1,h[2].Length - 2);
double d = Convert.ToDouble(h2);
Run Code Online (Sandbox Code Playgroud)
如果我显示d的输出是"25".我认为这可能取决于'.' resp','文化依赖,但如果我插入
double d = Convert.ToDouble(h2.Replace('.',','));
Run Code Online (Sandbox Code Playgroud)
它没有改变一件事,输出仍然是"25".
但最后,如果我执行如下的强力方法,我会在屏幕上得到逐字输出"0,25"
double d;
string[] h = s.Split('-');
string h2 = h[2].Substring(1,h[2].Length - 2);
if (h2.Contains("."))
{
string[] h3 = h2.Split('.');
d = Convert.ToDouble(h3[0]) + Convert.ToDouble(h3[1])/100;
}
else
{
d = Convert.ToDouble(h2);
}
return d;
Run Code Online (Sandbox Code Playgroud)
为什么前两个版本不起作用?最后一点代码不是正确的方法.
我用这个:
UIImage *image = [UIImage imageWithData: [NSData dataWithContentsOfURL: [NSURL URLWithString:@"http://oldmaker.com/glamberry_v2/ios_Loading-Spinners.gif"]]];
Run Code Online (Sandbox Code Playgroud)
但这花费了太多时间.我想用来AFNetworking加快加载速度.
任何帮助,将不胜感激.
几天前我问了这个问题,但是答案让我更加困惑.所以我会问一个更简单的问题:
(我正在使用Caliburn.Micro,这是一个WPF应用程序).假设您有一个MainView/MainViewModel,其中有AView/AViewModel和BView/BViewModel.您的MainView是一个网格,并且您希望使用AView或BView填充其中一个单元格,具体取决于用户选择.如果我只想展示AView,我会做以下事情:
在MainView中:
<StackPanel Name="SP_Controls" VerticalAlignment="Bottom" Grid.Row="1" Grid.Column="0">
<ContentControl Name="ViewModelToShow" Margin="10" />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
并在MainViewModel中:
public AViewModel ViewModelToShow{get; set;}
Run Code Online (Sandbox Code Playgroud)
我天真的想法现在就是做这样的事情:
private AViewModel _AVM;
private BViewModel _BVM;
public ... ViewModelToShow{ get; set;}
Run Code Online (Sandbox Code Playgroud)
然后在代码中,例如,将viewmodel设置为显示:
ViewModelToShow = _BVM;
Run Code Online (Sandbox Code Playgroud)
我唯一的问题是"...",因为每个ViewModel属于不同的类.有没有办法用泛型来做这个,或者我应该为我投射它的ViewModel定义一个基类?但是,如果我这样做,他们仍然会正确显示.谢谢.
我正在尝试为MVC控制器类编写扩展方法,因为我在程序中反复看到这样的代码:
if (viewModel == null)
{
return HttpNotFound();
}
return View(viewModel);
Run Code Online (Sandbox Code Playgroud)
我的想法是,我想要一个调用的扩展方法ViewModelResult()来处理这个问题,因此它将返回一个ActionResult或一个HttpNotFound结果,具体取决于视图模型是否可用.这样,我不必每次都写这3-4行代码.
但是,似乎方法View()和HttpNotFound()MVC控制器的保护级别造成了一些严重的麻烦.我已经编写了如下代码,但它不起作用:
public static class ExtensionController
{
public static ActionResult ViewModelResult(this Controller controller, ViewModel viewModel)
{
if (viewModel == null)
{
return controller.HttpNotFound();
}
return controller.View(viewModel);
}
}
Run Code Online (Sandbox Code Playgroud)
它抛出错误消息,例如"System.Web.MVC.Controller.View()由于其保护级别而无法访问".这让我感到困惑,我认为在扩展方法中,this关键字标记的对象的所有私有和受保护方法都是可访问的,就像在此类中编写方法一样.但我被证明是错误的,那些非公开的方法在扩展方法中是不可访问的.
现在问题是,我怎样才能解决这个问题?我有点无能,不知道我能做些什么.MVC控制器类在.NET框架内,我无法修改源代码.不建议不要改变.NET框架的内部实现.有人可以帮忙吗?在这种情况下,你建议我做什么?
我曾多次对这种形式的烦恼感到磕磕绊绊,所以我的问题是:代码场景的最佳模式/实践如下所示?
这是我最近写的方法体的一个例子:
public HashSet<char> SomeCharacters(IEnumerable<string> _hashes){
HashSet<char> Result = new HashSet<char>();
bool _firstpass = true;
foreach (string _hash in _hashes) {
if (_firstpass) {
Result = new HashSet<char>(_hash);
_firstpass = false;
}
else {
// ...
// some code that uses Result
}
}
return Result;
}
Run Code Online (Sandbox Code Playgroud)
这很好,但令我讨厌的是第一行
HashSet<char> Result = new HashSet<char>();
我本能地喜欢替换它HashSet<char> Result;.编译器不会让我,因为else块使用Result它不识别为instanciated,虽然我知道它将在else块执行时.
上面的方法迫使我创建Result两次,这不是很好的原因(性能,代码美学,......).
请将此问题视为有关此类情况的问题,而不仅仅是针对此特定示例.谢谢!
下面是我的linq代码
mTimeslot = (from users in mContext.MFUsers
join tblTime in mContext.tblTimeslots on users.UserID equals tblTime.varAdvisorId
join tblApp in mContext.tblAppointments on new { varAdvisorId=users.UserID,tblTime.varSlotId} equals new {tblApp.varAdvisorId, varSlotId = tblApp.varSlotId}
select new Timeslot
{
varAdvisorId = users.UserID,
varAdvisorName = users.varUserName
}).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
在第二个连接中,我收到一条错误,指出无法从查询中推断出类型参数.
tblTime.varSlotId是一个整数,tblApp.varSlotId而是一个可以为空的整数.我可以弄清楚错误是在上面提到的列中.但是我无法将整数值转换为可以为空的整数,因为两列的名称都是varSlotId.
我有一个RegimeItemID我在控制器中使用的模型属性.但是,当我试图调用它时,它会给出一个它不存在的错误.我做错了什么?
调节器
public ActionResult ExerciseIndex(int? id, UserExerciseViewModel vmodel)
{
User user = db.Users.Find(id);
//user.RegimeItems = ChosenExercises();
UserExerciseViewModel model = new UserExerciseViewModel { AvailableExercises = GetAllExercises(), RequestedExercises = ChosenExercises(user, vmodel) };
//user.RegimeItems = db.RegimeItems.Find(model.SelectedExercise);
user.RegimeItems = model.RequestedExercises;
return View(model);
}
private List<RegimeItem> ChosenExercises(User user, UserExerciseViewModel model)//RegimeItem regimeItem)//User user, RegimeItem regimeItem)
{
return db.Users.Where(r => r.RegimeItems.RegimeItemID == user.UserID).ToList();
}
Run Code Online (Sandbox Code Playgroud)
楷模
public class User
{
public int UserID { get; set; }
public ICollection<RegimeItem> RegimeItems { get; set; }
public User() …Run Code Online (Sandbox Code Playgroud) c# ×7
asp.net-mvc ×3
javascript ×2
jquery ×2
.net ×1
afnetworking ×1
asp.net ×1
controller ×1
double ×1
hangfire ×1
html ×1
html5 ×1
ios ×1
linq ×1
mvvm ×1
objective-c ×1
uiimage ×1
wpf ×1