我最近在这里问了一个与我的日历项目有关的问题并得到了很好的结果,所以我生病了另外一个问题。
这是我关注的教程 http://www.dotnetawesome.com/2017/07/curd-operation-on-fullcalendar-in-aspnet-mvc.html
不幸的是,当涉及到这个项目时,我丢失了我最近正在处理的代码。但我只是想在我重新开始编码之前知道:当我使用Azure数据库时为什么事件没有加载到日历上(jquery和javascript)?特别是在发布后,事件不会加载。它们将在我使用常规sql数据库时加载,但在使用Azure sql数据库时不会加载它们。我找不到关于类似问题的任何信息,如果这是与Json有关的已知问题,我很好奇吗?
以下是从后端获取事件的代码片段:
<?php
foreach($sessions as $index)
{
echo "<div class='wrap'>
<div class='well session'>
Clinic: <a class='clinic-link' title='Click to see clinic sessions'>".$index['org']."</a><br>
Trainer: ".$index['trainer']."<br>
Date: ".$index['session_date']."<br>
Duration: ".$index['duration']." hours<br>
Status: ".$index['status']."<br><br>
Note: ".$index['session_note']."<br><br>
<a class='btn btn-lg btn-default edit' class='edit-button' onclick='openEdit(this)'>Edit</a>
</div>
<div class='well edit-form'>
<form action='".$_SERVER['PHP_SELF']."' method='POST'>
<label for='session_edit_clinic'>Clinic:</label><br>
<input type='text' name='session_edit_clinic' id='session_edit_clinic' value='".$index['org']."'><br><br>
<label for='session_edit_trainer'>Trainer:</label><br>
<input type='text' name='session_edit_trainer' id='session_edit_trainer' value='".$index['trainer']."'><br><br>
<label for='session_edit_date'>Date:</label><br>
<input type='date' name='session_edit_date' id='session_edit_date' value='".$index['session_date']."'><br><br>
<label for='session_edit_duration'>Duration:</label><br>
<input type='text' name='session_edit_duration' id='session_edit_duration' value='".$index['duration']."'><br><br>
<label for='session_edit_note'>Note:</label><br>
<textarea name='session_edit_note' id='session_edit_note' cols='56' rows='7'>".$index['session_note']." </textarea> <br><br>"
.if($index['status']=='Billable'){
$status1 = $index['status'];
$status2 = '';
}
else{
$status1 = '';
$status2 = $index['status'];
}."
<input type='radio' name='status' value='".$status1."'> Billable<br>
<input type='radio' name='status' value='".$status2."'> Not Billable<br>
<div class='lower-div'>
<input type='submit' class='btn btn-lg btn-default edit session_edit_submit' name='session_edit_submit' id='session_edit_submit' value='Save Changes'>
<a class='btn btn-lg btn-primary close-edit' class='close-edit' style='margin-left: 20px;' onclick='closeEdit(this)'>Close</a>
</div>
</form>
</div>
</div>
";
}
?>
我现在无法进行调试,但也许我会尝试输入部分代码,以便我可以测试为什么使用azure数据库会使事件无法在日历上加载。
答案 0 :(得分:1)
为什么在使用Azure数据库时事件不会加载到日历(jquery和javascript)上?
我从你提到的教程中下载了demo code。然后我将其更改为使用Azure SQL,它可以正常工作。
如果我们在本地运行应用程序,我们需要将客户端IP添加到Azure SQL防火墙,以允许客户端访问Azure SQL。我们可以从this tutorial获取有关Azure SQL防火墙的更多信息。
以下是我的详细步骤:
1.将连接字符串替换为Azure SQL连接字符串
function OpenPanel(elem) {
alert(elem.id);
}
$('button.panelB').click(function() {
OpenPanel(this);
});
2.使用Azure sql数据库中给定的Event表创建具有相同模式的表。
3.删除localdb和MyModel.xx相关文件
4.添加Event.cs和MyDatabaseEntities.cs文件
<connectionStrings>
<add name="MyDatabaseEntities" connectionString="Server=tcp:sqlservername.database.windows.net,1433;Initial Catalog=databasename;Persist Security Info=False;User ID={user};Password={password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" providerName="System.Data.Sqlclient" />
</connectionStrings>
项目文件struct:
5.在本地测试,它可以正常工作。